dポイントプレゼントキャンペーン実施中!

PHPにて、MySQLにデータをインサートする処理があります。(WEBシステムです)
インサートするテーブルにはAUTO_INCREMENTを使ったIDの
ようなフィールドがあります。
このテーブルに対して、DELETEをする処理はプログラムには
ありません。(UPDATEはあります)
AUTO_INCREMENTのIDを調べてみると、2~3万件に1件くらい
抜け番があります。プログラムにDELETE処理がないので、SQL手打ち
でないと、理論上は抜け番は存在し得ないと考えています。
この抜け番が存在する可能性を教えて頂ければと存じます。

A 回答 (2件)

MySQLのAUTO_INCREMENTについて色々と調べてみた。


エラーが起きた時の欠番
https://qiita.com/sakuraya/items/0dd0bb4114e56f4 …

2~3万件に1件くらいの確率でエラーになったのでは?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
なるほど、INSERTエラーが発生してもインクリメントされるんですね。
そうすると、2~3万件に1件くらいの確率で何かしらのエラーに
なっている可能性があるという事です。大変参考になりました。

お礼日時:2019/01/21 20:07

トランザクションでrollbackしたときとかおきます


基本的にauto_incrementの意義は連番を振ることではなく
ユニークな番号を振ることなので、抜け番なんて気にする必要はありません
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
連番でなくても、システム的には問題はないのですが、
想定と違う事(連番でない事)から潜在的な問題があるの
であれば、発見しときたいと思いご質問させてもらいました。

お礼日時:2019/01/21 20:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!