在一个表中,我有一个自动递增主键的列。
问题出在这种情况:
5
如何让此自动增量列的值为1
?
答案 0 :(得分:2)
SQLite自动增量字段将永久增加。它不会替换已删除的值。仅当存在最大可能值时才会替换已删除的值。请参阅this。你想要实现的是使用自动增量字段无法实现的目标。你必须以编程方式进行。
答案 1 :(得分:1)
您可以使用整数主键,而不是使用自动增量,它可以正常工作。即使您的行被逐个删除,下一个增量也将正确完成。如果将整数主键字段保留为空,则会获取行的最大值,并添加1
(类似于max(value)+1
)。它对我来说很好。
答案 2 :(得分:0)
如果我们有一个自动增量的主要内容,即使删除所有现有条目,该值也不会相同。它将从最后一次插入时停止的位置继续。如果您希望主键从1开始,则需要截断表格或删除&重新创建表。
在SQLite中,“truncate”命令无效。您可以使用“从 tablename 中删除”和“vacuum tablename ”将主键计数重置为从1开始。请确保没有“where”子句删除命令。