假设我的SQLite数据库有2列,第一列是自动递增ID,第二列是某些字符串。现在就说吧
1随机 2个豆豆 3 ImTired
如果我要删除条目2,那么它将是
1随机 3 ImTired
我想要的是一种方法,当你删除条目2时,它会变成
1随机 2 ImTired
我考虑更新条目以将它们全部移到一个并删除最后一个,但即使它有效(在我的情况下,它删除了我的所有条目,但无论如何......),即使我做了得到它 1随机 2 ImTired
下次我创建一个新条目时,它将是条目4.我不认为这对我的应用程序是必要的,但它严重地让我感到烦恼。
答案 0 :(得分:3)
数据库上的ID列用作主键,主键是用于唯一标识行的列或列组。在行上设置主键后,您不应该更改它,否则您可能会失去数据库的一致性。例如,假设您稍后创建另一个引用第一个表中的行的表。该引用将使用主键进行,如果您以后更改它,您的数据将不再有意义。
如果您希望ID列不断更改以反映表中的行数,则可以使用其他方法解决该问题。例如。 SQL提供了一个COUNT运算符,它将返回表中的行数:
SELECT COUNT(*) FROM Table_name;