重置Android Room库中的自动增量

时间:2018-12-16 19:13:45

标签: android sqlite auto-increment android-room

我使用Android的Room库创建了一个表,该表存储了User类型的项目。对于ID列,该值是通过添加注释自动生成的

@PrimaryKey(autoGenerate = true)

在下一个应用程序运行中,我删除表中的所有条目。但是,自动生成的值不会重置为0,而是会在上一次运行的左侧继续。

删除表中的所有条目时如何重置自动递增计数器?

1 个答案:

答案 0 :(得分:0)

您为什么会是更相关的问题。具有AUTOINCREMENT的列将是 rowid 列的别名,该列用于唯一标识行。除了识别行之外,最好不要依靠此值。

使用AUTOINCREMENT(autogenerate = true)会创建一个内部表 sqlite_sequence ,该表中的一行包含有史以来使用量最高的 rowid 的值,下一个< strong> rowid 将是该值+1。因此是您的问题。

要从1重新开始,您必须将 sqlite_sequence 表中的相应行更新为0,或删除 sqlite_sequence 表中的相应行。

>

您不妨看一下Android Room - reset auto generated key on each app run注意到,这可能是重置序列值的基础,但是,它将始终重置序列值。