1. ホーム
  2. sql

[解決済み] SQLite 主キーフィールドのリセット

2022-05-25 14:45:45

質問

SQLiteでいくつかのテーブルを持っていますが、自動インクリメントされるデータベースフィールドをリセットする方法を見つけようとしています。

私は次のことを読みました。 DELETE FROM tablename はすべてを削除し、自動インクリメントフィールドをリセットして 0 に戻す必要がありますが、これを実行すると、データが削除されるだけです。 新しいレコードが挿入されると、自動インクリメントは削除される前の状態に戻ります。

私の ident フィールドのプロパティは次のとおりです。

  • フィールドの種類 : integer
  • フィールドフラグ : PRIMARY KEY , AUTOINCREMENT , UNIQUE

SQLite Maestro でテーブルを構築し、そのテーブルに対して DELETE ステートメントを同様に SQLite Maestro で実行していることは問題ですか?

どのようなヘルプも素晴らしいです。

どのように解決するのですか?

これを試してみてください。

delete from your_table;    
delete from sqlite_sequence where name='your_table';

SQLiteオートインクリメント

SQLiteは を使用して、テーブルが保持している最大のROWIDを記録します。 特別な SQLITE_SEQUENCE テーブル . は SQLITE_SEQUENCE テーブルが作成され テーブルは自動的に作成され、初期化されます。 を含む通常のテーブルが作成されるたびに AUTOINCREMENT カラムを含む通常のテーブルが作成されるたびに自動的に作成され、初期化される。このテーブルの SQLITE_SEQUENCE テーブルの内容 テーブルの内容は、通常の UPDATE、INSERT、および DELETE ステートメントを使用して変更することができる。 INSERT、および DELETE ステートメントを使用して変更できる。しかし このテーブルを変更することは を変更すると、おそらくAUTOINCREMENT キー生成アルゴリズムに影響を与える可能性がある。必ず そのような変更を行う前に、自分が何をしているのか そのような変更を行う前に、何を行っているかを確認してください。