是否可以在SQLite数据库中重新设置自动增量列,如果可以,这是如何完成的?
即。相当于SQL Server中的DBCC CHECKIDENT ('MyTable', RESEED, 1)
。
答案 0 :(得分:22)
在SQLite中有一个名为SQLITE_SEQUENCE的表,它跟踪表所具有的最大RowId
值。您可以在此表上执行插入,更新和删除操作。例如,要模仿类似于TRUNCATE TABLE语句SQL Server的功能,您可能会这样:
DELETE FROM MyTableName;
DELETE FROM SQLITE_SEQUENCE WHERE NAME = 'MyTableName';
在上面的示例中,删除了MyTableName中的所有数据,并通过从SQLITE_SEQUENCE表中删除值来重置自动增量rowid。有关详细信息,请参阅AUTOINCREMENT的文档。
答案 1 :(得分:3)
DELETE
FROM MyTableName
select *
from SQLITE_SEQUENCE
update SQLITE_SEQUENCE
set seq = 0
where name ='MyTableName'