问题描述
是否可以在 SQLite 数据库中重新设置自动增量列的种子,如果可以,如何完成?
Is it possible to reseed an auto increment column in a SQLite database, and if so, how is this done?
即.相当于 SQL Server 中的 DBCC CHECKIDENT ('MyTable', RESEED, 1)
.
ie. The equivalent of DBCC CHECKIDENT ('MyTable', RESEED, 1)
in SQL Server.
推荐答案
在 SQLite 中有一个名为 SQLITE_SEQUENCE 的表,它跟踪表具有的最大 RowId
值.您可以在此表上执行插入、更新和删除操作.例如,要模拟与 SQL Server 的 TRUNCATE TABLE 语句类似的功能,您可以执行以下操作:
In SQLite there is a table named SQLITE_SEQUENCE, which tracks the largest RowId
value that a table has. You can do insert, updates and deletes on this table. For example, to mimic similar functionality as the TRUNCATE TABLE statement SQL Server you could something like:
DELETE FROM MyTableName;
DELETE FROM SQLITE_SEQUENCE WHERE NAME = 'MyTableName';
在上面的示例中,MyTableName 中的所有数据都被删除,并且通过从 SQLITE_SEQUENCE 表中删除值来重置自动增量 rowid.有关详细信息,请参阅 AUTOINCREMENT 的文档.
In the above example all data from MyTableName is removed, and the auto increment rowid is reset by removing the value from the SQLITE_SEQUENCE table. See the documentation for AUTOINCREMENT for more information.
这篇关于如何在 SQLite 数据库中重新设置自动增量列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!