mySQL、PHP information_schemaのauto_incrementの値が更新されないエラー?
レコードを追加しても問題はないけどinformation_schemaのauto_incrementを見ると値が更新されていない
作成日:2021-10-05, 更新日:2021-10-05
やりたかったこと
1.現在のauto_incrementの値が欲しかった
2.insertしたときのシリアルIDはインクリメントされている
3.「information_schema.auto_increment」を取得すると更新されていないことがある
・・・原因不明
auto_incrementの値の確認方法
▼auto_incrementの値を確認1
show table status like "〇〇〇";
▼auto_incrementの値を確認2
select `auto_increment` from `information_schema`.`tables` where `table_name`="〇〇〇";
状況
1.WEBサイトに登録FORMを用意
2.登録FORMから登録(※DBに保存するときに「information_schema.auto_increment」を使ってゴニョゴニョする)
・・・このときは、たぶん問題無かった
3.登録をまとめてしたい+テストもしたいってコトでseleniumを使う
4.seleniumで登録FORMから登録(※「2」と同じ)
・・・しばらくして「4」でゴニョゴニョした「information_schema.auto_increment」がすべて一緒というコトに気づく
現在に至る
対策
・「information_schema.auto_increment」が信用できないってコトで・・・
insertしたいテーブルのシリアルを直接取得することに。
▼今回欲しいのは次のオートインクリメントの値なので、「max()+1」にする
select max(id)+1 as next from 〇〇〇;
注意点
「max()」を使っているので最新のレコードを削除するようなコトがあると面倒かもしれない