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

时间:2010-06-26 05:44:59

标签: sql tsql sqlite identity-column

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

即。相当于SQL Server中的DBCC CHECKIDENT ('MyTable', RESEED, 1)

2 个答案:

答案 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'