作 ▸
SQLiteでテーブルの内容を全部消して連番もリセットする
MySQLとかSQLServerでは、TRUNCATE
を使うとテーブルの内容を全消し&連番リセットできて便利だったのですが、SQLiteには TRUNCATE
が無かった。
とりあえず my_table
というテーブルの中身を消して連番リセットしたいだけなら、以下でOK。必要なら別途 VACUUM
する。
SQLiteは sqlite_sequence
というテーブルに、テーブル名と連番の現在値の組み合わせを持ってます。
これを消すと次の連番は現存するレコードの最高値から決定されるので、全消しした場合は次の連番が1になります。