从sql表中删除记录并更新sql表

时间:2012-06-10 07:47:19

标签: sql database sqlite

我正在尝试删除sqlite中的记录。我有四条记录record1,record2,record3,record 4 id为主键。

所以它会为我插入的每条记录自动递增。现在,当我删除记录3时,主键不会递减。如何根据我删除的记录减少id。

当我从数据库中删除记录3时,我希望id为1,2,3。现在是1,2,4。是否有任何SQL查询来更改它。我试过这个

DELETE FROM TABLE_NAME WHERE name = ?

注意:我在xcode中实现

2 个答案:

答案 0 :(得分:1)

自动增量的意义总是创建一个新的唯一ID,而不是填补删除记录创建的空白。

修改

您可以通过特殊表格设计来访问它。没有删除的记录,但字段“del”标记为已删除。

例如,使用“select ... where del> 0”会找到所有有效记录。

或者在没有“where”所有记录的地方,那么ID不受影响。用“if del = 0 continue”循环遍历数组。因此,数组始终是连续的。

非常灵活。取决于选择......你得到。

  • 所有有效记录
  • 所有已删除的记录
  • 所有记录

答案 1 :(得分:1)

我不知道你为什么要这样,但我建议保留这些ID。 ID为1,2,4有什么问题? 如果您将这些ID值用作其他位置的外键,也可能会破坏事物(参照完整性)。

另请参阅此页面以更好地了解自动增量字段的工作原理 http://sqlite.org/autoinc.html