我正在尝试删除 sqlite 中的记录。我有四个记录记录 1、记录 2、记录 3、记录 4,其中 id 作为主键。
所以它会为我插入的每条记录自动增加。现在当我删除记录 3 时,主键没有递减。如何根据我要删除的记录来减少 id。
当我从数据库中删除记录 3 时,我希望 id 为 1、2、3。现在是 1,2,4。是否有任何 sql 查询来更改它。我试过这个
DELETE FROM TABLE_NAME WHERE name = ?
注意:我在 xcode 中实现
自动增量的意义始终是创建一个新的唯一 ID,而不是填补删除记录造成的空白。
编辑
您可以通过特殊的桌子设计来达到它。没有已删除的记录,但有一个字段“del”标记为已删除。
例如,使用“ select ... where del> 0
”将查找所有活动记录。
或者放置没有“位置”的所有记录,则 ID 不受影响。使用“if del = 0 continue”循环遍历数组。因此,数组总是按连续顺序排列。
它非常灵活。根据选择...你得到。
我不知道你为什么想要这个,但我建议保留这些 ID。将 ID 设置为 1、2、4 有什么问题?如果您在其他地方使用这些 ID 值作为外键,您也可能会破坏事物(参照完整性)。
另请参阅此页面以更好地了解自动增量字段的工作原理 http://sqlite.org/autoinc.html