SQLite:删除所有行后,* prevent * PRIMARY KEY值不会重置 [英] SQLite: *prevent* PRIMARY KEY value from resetting after delete all rows
问题描述
我有一个SQLite表,其中有几列,包括一个"ID"列,它是INTEGER PRIMARY KEY.
I have a SQLite table, with a few columns, including an "ID" column which is INTEGER PRIMARY KEY.
当我插入时,该值会按预期增加.
When I insert, this value increments as expected.
但是,当我删除所有行时,该列的值在下一次插入时将恢复为1.
However, when I delete all rows, this column's value reverts to 1 on the next insert.
有没有一种方法可以让列值从删除前的最高值继续增加?
Is there a way to have the column value continue to increment from the highest value before deletion?
例如:
- (空表)
- 插入
- 插入
(第二行的ID值为2,下一个插入值为3)
(ID value of 2nd row is 2, next insert would be 3)
- 删除所有行
- 插入
(此最新行的ID值为1,但我希望它为3)
(ID value for this latest row is 1, but I want it to be 3)
推荐答案
如果在INTEGER PRIMARY KEY之后出现AUTOINCREMENT关键字,则会更改自动ROWID分配算法,以防止在数据库的整个生命周期内重复使用ROWID.换句话说,AUTOINCREMENT的目的是防止重复使用先前删除的行中的ROWID.
https://www.sqlite.org/autoinc.html
这篇关于SQLite:删除所有行后,* prevent * PRIMARY KEY值不会重置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!