如何在SQLite数据库中重新设置自动增量列?

Mun*_*Mun 12 sql t-sql sqlite identity-column

是否可以在SQLite数据库中重新设置自动增量列,如果是这样,这是如何完成的?

即.相当于DBCC CHECKIDENT ('MyTable', RESEED, 1)SQL Server.

Gar*_*ett 22

在SQLite中有一个名为SQLITE_SEQUENCE的表,它跟踪RowId表所具有的最大值.您可以在此表上执行插入,更新和删除操作.例如,要模仿与TRUNCATE TABLE语句SQL Server类似的功能,您可以这样:

DELETE FROM MyTableName;
DELETE FROM SQLITE_SEQUENCE WHERE NAME = 'MyTableName';
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,将删除MyTableName中的所有数据,并通过从SQLITE_SEQUENCE表中删除值来重置自动增量rowid.有关更多信息,请参阅AUTOINCREMENT的文档.


小智 6

DELETE 
FROM MyTableName

select *
from SQLITE_SEQUENCE

update SQLITE_SEQUENCE 
set seq = 0
where name ='MyTableName'
Run Code Online (Sandbox Code Playgroud)