+-
删除SQLite中的行后,新条目的_ID不连续
我使用此方法在sqlite数据库中删除一行:

db.execSQL("delete from "+TABLE_NUMS+" where _ID = '" + this.rowID + "'");

然后我更新其余的Id以使输入连续:

db.execSQL("UPDATE "+TABLE_NUMS+" set _ID = (_ID - 1) WHERE _ID > "+this.rowID);

它可以正常工作,但是当我向数据库中添加新条目时,新条目的ID仍会添加,就好像存在已删除的条目一样,假设我有10行ID从1到10的行,然后删除数字5和6,行变成1到8,但是新条目的ID将是11.所以我的ID序列将是1到8和11.如何解决此问题?

最佳答案
SQLite使用特殊的SQLITE_SEQUENCE表跟踪表曾经拥有的最大ROWID.您可以将该序列修改为:

UPDATE SQLITE_SEQUENCE SET seq = this.ID -1 WHERE name = TABLE_NUMS 

在this question中要求相同的功能.

点击查看更多相关文章

转载注明原文:删除SQLite中的行后,新条目的_ID不连续 - 乐贴网