MySQL で、AUTO_INCREMENT の値を設定して取得する
2023-05-18 00:31 (2 years ago)
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'
ただし、キャッシュされている値が取得されることがある。 以下のどちらかの方法で対策できる。
対策A: セッション内で information_schema のキャッシュを無効化する
SET information_schema_stats_expiry = 0
対策B: テーブルの information_schema のキャッシュを強制的に更新する
ANALYZE TABLE my_table_name
参考ページ
現在の評価: 5.0 (2)
著者は、アプリケーション開発会社 Cyberneura を運営しています。
開発相談をお待ちしています。
開発相談をお待ちしています。