0
我发现SQLite3的自动增量总是比现有的最高主键多一个。如何防止SQLite3自动递增两次相同的值?
例如我创建一条记录,它的id设置为1.然后下一条记录的id设置为2.如果我删除id = 2的记录并创建一条新记录,则新的id设置为2,而不是3.
他们是否有自动增量的sqlite3永远不会分配相同的值两次?
我发现SQLite3的自动增量总是比现有的最高主键多一个。如何防止SQLite3自动递增两次相同的值?
例如我创建一条记录,它的id设置为1.然后下一条记录的id设置为2.如果我删除id = 2的记录并创建一条新记录,则新的id设置为2,而不是3.
他们是否有自动增量的sqlite3永远不会分配相同的值两次?
http://www.sqlite.org/autoinc.html的文档明确指出您所看到的行为是预期的。该文档还声明,通过制作列来避免此问题:
INTEGER PRIMARY KEY AUTOINCREMENT
为什么要硬删除数据库中的行?你应该软删除它们,永远不会有这个问题,再加上你永远不会丢失你的数据,以防你需要回滚一些东西。 – 2012-12-19 17:18:45