はじめに
開発中に MySQL でテーブルの値の追加・削除を繰り返していると AUTO_INCREMENT の値がどんどん増えていくので、たまにリセットしたくなります。
この記事では、そのようなときに MySQL で AUTO_INCREMENT をリセットする方法について記載します。
開発環境
開発環境は以下の通りです。
- Windows11
- MySQL 8.0.33
方法1:TRUNCATE を利用する
TRUNCATE を利用すると、テーブル内の全てのレコードを削除することができ、 AUTO_INCREMENT もリセットされます。
TRUNCATE TABLE tbl_name;
ただ、TRUNCATE では、ロールバックができないため。利用時は注意が必要です。
DELETE でもテーブル内のレコードを削除できますが、AUTO_INCREMENT はリセットされません。
方法2:DELETE と ALTER TABLE を利用する
上記の通り TRUNCATE では、ロールバックができません。また、DELETE だと AUTO_INCREMENT はリセットされません。
しかし、DELTE を実行した後、ALTER TABLE を利用すれば、 AUTO_INCREMENT をリセットすることができます。
DELETE FROM tbl_name;
ALTER TABLE tbl_name AUTO_INCREMENT = 1;
まとめ
- 何も気にせずはやく削除したい:TRUNCATE を利用する
- ロールバックできるようにしておきたい:DELETE と ALTER TABLE を利用する