【问题标题】:How to "update" the _id column in SQLite Database Browser如何在 SQLite 数据库浏览器中“更新”_id 列
【发布时间】:2023-04-01 21:05:01
【问题描述】:

我的数据库中的 _id 列是一个 INTEGER PRIMARY KEY,所以它是一个自动递增的列。 问题是现在我删除了一行,而该列没有更新自增数。

有没有办法让 _id 列更新,所以序列中不会有漏洞?

非常感谢您。

【问题讨论】:

  • 为什么?这不是身份证号码应该如何工作的方式。填充孔后您要解决的问题是什么?
  • 我不需要在进程中出现任何漏洞,因为我正在将该数据库与一个搜索随机 _id 编号的应用程序一起使用,如果它没有找到该 _id 编号,应用程序就会崩溃

标签: sqlite


【解决方案1】:

没有。这不是它的预期用途。不要乱用主键!会有缝隙。 id 只是一个唯一标识符。

如果您需要排名,那么您可以这样做

select t.*, @rank := @rank + 1 as gapless_rank
from your_table t
cross join (select @rank := 0) r
order by id

【讨论】:

    【解决方案2】:

    要从表中获取nth ID,请使用如下查询:

    SELECT _id
    FROM MyTable
    ORDER BY _id
    LIMIT 1
    OFFSET n-1
    

    【讨论】:

      猜你喜欢
      • 2014-03-13
      • 1970-01-01
      • 2015-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 2019-05-19
      • 2016-01-31
      相关资源
      最近更新 更多