1. ホーム
  2. データベース
  3. エスキューエルライト

SQLiteで自動番号付けされたカラムをリセットする方法

2022-01-21 07:09:23

現在人気のあるデータベースはすべて自動番号付けのタイプを提供しており、SQLiteも例外ではありません。データベースが自動採番フィールドを含む場合、SQLite は自動的に sqlite_sequence と呼ばれるテーブルを作成します。このテーブルはnameとseqという2つのフィールドを含んでいます。name フィールドは自動採番フィールドがあるテーブルを記録し、seq フィールドは現在使われているシーケンス番号(次のレコードの番号は現在のシーケンス番号に1を足したもの)を記録します。

開発中、しばしばテーブルをリセットする必要があります。SQLiteでは、これは単にsqlite_sequenceテーブルを変更することで行われます。

コピーコード コードは以下の通りです。

UPDATE sqlite_sequence SET seq = 0 WHERE name = 'TableName'

で直接レコードを削除することもできます。
コピーコード コードは以下の通りです。

DELETE FROM sqlite_sequence WHERE name = 'TableName'

すべてのテーブルをリセットしたい場合は、sqlite_sequenceを空にすればよい。
コピーコード コードは以下の通りです。

DELETE FROM sqlite_sequence