動作検証で使っていたデータベース(PostgreSQL)のテーブルを本番公開する際に、溜まったゴミデータを削除し、合わせてシーケンスもリセットする機会があったので、その時使ったSQL文を備忘録として残しておく。
TRUNCATE TABLE table_name RESTART IDENTITY;
table_name
は適宜変更する必要があるが、上記のSQL文を実行するだけで一発でデータとシーケンスをリセットすることができた。
少し解説しておこう。
上記の例ではRESTART IDENTITY
を付ける事でシーケンスもリセットしているが、以下のようにする事でシーケンスはそのままに、データのみを削除することができる。
TRUNCATE TABLE table_name;
また、DELETE
文でも同様にデータの削除をおこなうことができるが、DELETE
文はWHERE
句で削除対象を選択できるのに対し、TRUNCATE TABLE
文では全てのデータが削除対象となる。
全てのデータを削除する場合は、TRUNCATE TABLE
文の方が処理速度が早い。