テーブルのレコードを全削除する前提になります。
TRUNCATE文を使う
TRUNCATE
= テーブルのレコード全件削除
mysql> TRUNCATE TABLE ${table_name};
でリセットできます。
ALTER文を使う
ALTER TABLE
= テーブル定義を変更
TRUNCATE
文でリセットできない場合(または抵抗がある時)はALTER文
でリセットできます。
mysql> ALTER TABLE ${table_name} AUTO_INCREMENT=1
でリセットできます。
どんなときに使うか?
リリース前にテストデータを全て削除する時に使います。
TRUNCATE
文でできたらそれで良いのですが、
DELETE
文で全レコード削除してもAUTO_INCREMENT
はリセットできないのです・・・。
例えばユーザーIDにAUTO_INCREMENT
を設定しているなら、
ユーザーIDが30まで1件ずつあるレコードを全て削除してから新たにレコードを挿入すると31から始まってしまいます。
それを防ぐためにAUTO_INCREMENT
にリセットをかけます。
###参考
【MySQL】auto_increment(オートインクリメント)の連番状態をリセット(初期化)する
全てのデータを削除する(TRANCATE TABLE文)