删除最后一个模型后,将为创建的下一个模型分配已删除的模型pk,这意味着删除模型的任何链接现在将指向新模型。
那么我们应该使用PK还是创建一个UUID? 例如,用户配置文件,某些高级配置文件将在删除时指向一些全新的配置文件。
答案 0 :(得分:1)
从最简单的意义上讲,数据库使用PK字段的计数器,并在添加新记录时将其递增。删除/更新操作不会修改计数器。所以db不可能两次使用相同的值。
编辑:OOps,这似乎是Sqlite的一个功能。详细信息如下:http://sqlite.org/autoinc.html
引用文档:
如果在插入上没有指定ROWID,或者指定的ROWID没有 值为NULL,然后自动创建适当的ROWID。 通常的算法是给新创建的行一个ROWID 一个大于插入前表中最大的ROWID。
和
将生成上述正常的ROWID选择算法 只要你从不使用,就单调增加独特的ROWID 最大ROWID值,您永远不会删除表中的条目 最大的ROWID。
答案 1 :(得分:0)
事实上,您可以从same link了解到在主键上创建AUTOINCREMENT
可以阻止这种麻烦。
尝试:
CREATE TABLE "Pity" (
"ID" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL);