Is it possible to reseed an auto increment column in a SQLite database, and if so, how is this done?
ie. The equivalent of DBCC CHECKIDENT ('MyTable', RESEED, 1)
in SQL Server.
Is it possible to reseed an auto increment column in a SQLite database, and if so, how is this done?
ie. The equivalent of DBCC CHECKIDENT ('MyTable', RESEED, 1)
in SQL Server.
RowId
SQLite には、テーブルの最大値を追跡する SQLITE_SEQUENCE という名前のテーブルがあります。このテーブルに対して挿入、更新、および削除を行うことができます。たとえば、SQL Server の TRUNCATE TABLE ステートメントと同様の機能を模倣するには、次のようにします。
DELETE FROM MyTableName;
DELETE FROM SQLITE_SEQUENCE WHERE NAME = 'MyTableName';
上記の例では、MyTableName からのすべてのデータが削除され、SQLITE_SEQUENCE テーブルから値を削除することによって自動インクリメント行 ID がリセットされます。詳細については、 AUTOINCREMENTのドキュメントを参照してください。
DELETE
FROM MyTableName
select *
from SQLITE_SEQUENCE
update SQLITE_SEQUENCE
set seq = 0
where name ='MyTableName'