MySQL5.7とMySQL8.0で AUTO_INCREMENT の挙動が変わっている件
経緯
今まで、大量のテストデータをクリアする時に TRUNCATE TABLEをする事でAUTO_INCREMENTの値も初期化していた
MySQL5.7の場合
use <データベース名>; TRUNCATE TABLE <テーブル名>; SHOW TABLE STATUS WHERE name = '<テーブル名>';
でAuto_incrementの値が変わっている事を確認していた もし変更されなかったら下記のSQLで初期化していた
use <データベース名>; alter table <テーブル名> auto_increment = 1;
MySQL8.0の場合
use <データベース名>; TRUNCATE TABLE <テーブル名>; SHOW TABLE STATUS WHERE name = '<テーブル名>'; alter table <テーブル名> auto_increment = 1;
を実行してもAuto_incrementの値は変更されない
ただ実際にinsertすると「1」から入る。 意味がわからない\(^o^)/
dropして、creteしたら変わった
use <データベース名>; drop table <テーブル名>; crete table <テーブル名>(… SHOW TABLE STATUS WHERE name = '<テーブル名>';
エクスポート機能があるから簡単につくれるけど、面倒くさいな~
ちょっと別件
色々、調べてみて勉強したこと
サーバーを再起動しても AUTO_INCREMENT の値が リセットされなくなりました
https://www.s-style.co.jp/blog/2018/08/2284/ https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html
これは、いいことだね