MySQL で、テーブルの auto_increment を設定したり取得したりする時、 MySQL8以降は、information_schema がキャッシュされるので、連続で AUTO_INCREMENT を取得すると、更新されない値が取得できることがある。 その場合の対策方法
ALTER TABLE my_table_name AUTO_INCREMENT = 1
SELECT AUTO_INCREMENT
FROM information_schema.tables
WHERE TABLE_NAME = 'my_table_name'
ただし、キャッシュされている値が取得されることがある。 以下のどちらかの方法で対策できる。
SET information_schema_stats_expiry = 0
ANALYZE TABLE my_table_name
コメント