バージョン:MySQL 8.0.16
#ALTER TABLEで変更したのに…
ALTER TABLE テーブル名 AUTO_INCREMENT = 値
でテーブルのオートインクリメントの値を変更できます。
なのに、SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE table_name = テーブル名
で変更前のオートインクリメントの値が取れてしまう…
#対策
information_schema.INNODB_TABLESTATS
には変更後の値が入っていました。
SELECT AUTOINC FROM information_schema.INNODB_TABLESTATS WHERE NAME = DB名/テーブル名
で取得できました。カラム名がAUTOINC
な点に注意です。
##追記
上記はそもそも権限がなくてINNODB_TABLESTATSの情報にアクセスできない場合も多いです…。
また、それとは別に、同じ件について書いている情報がありました。→参考
MySQL8.0からの仕様のようです。どうやら、information_schema.TABLESのAUTO_INCREMENTはキャッシュを取られているとか。
上記リンク先では、
SET PERSIST information_schema_stats_expiry = 0
としてキャッシュを取らないように設定するよう書いてありました。そちらも合わせて参考になれば幸いです。
この記事
初投稿です。お手柔らかにお願いします。