如何让sqlite的id和行数保持一致?

我在应用里对数据库进行一番删除添加之后,想着通过for循环把数据库里的数据根据id一行一行全都取出来。
可是问题来了,当我去查看第一行的id时,发现已经排到100多了,怪不得我取id为0的会出现null。
所以我想要是能让id和行数保持一致,那我的问题也就能解决了。即第一行的id永远为1,第二行永远为2,依次类推,有什么好的方法么?

阅读 5.4k
5 个回答

数据库没有这种功能,因为对于自增id来说,删除完一行数据之后,这个id就不再使用了,就会在整个表中出现很多id窟窿,数据库这么设计应该是出于防止数据id冲突(已删除的数据和新增的数据id相同)

首先行数只是个相对概念,不同查询会返回不同结果表。这样做有什么意义呢?!

我也想过这个问题,最终没能实现。不过你可以先遍历数据库,并把id存到一个数组里,这样就可以用与item对应的id进行操作了。

你不删除数据就行了

你可以给一个自增列为主键。用来做标识。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题