我使用Android的Room库创建了一个表,该表存储了User
类型的项目。对于ID列,该值是通过添加注释自动生成的
@PrimaryKey(autoGenerate = true)
在下一个应用程序运行中,我删除表中的所有条目。但是,自动生成的值不会重置为0,而是会在上一次运行的左侧继续。
删除表中的所有条目时如何重置自动递增计数器?
答案 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。 注意到,这可能是重置序列值的基础,但是,它将始终重置序列值。