sql >> データベース >  >> RDS >> Mysql

自動インクリメント列の値にギャップが1つ以上あることがあるのはなぜですか?

    INSERTステートメントの形成方法と関係があるようです。 このフィドル を参照してください。 、これはあなたの例から少し変更されています。この場合、ギャップは発生しません(ただし、挿入を追加すると、おそらくギャップが発生します... 実際には 。)。

    編集:もう少し掘り下げた後、(InnoDBではなく)MyISAMエンジンを使用してもギャップが生じないことがわかりました。したがって、おそらくそれはInnoDBの欠陥または奇妙な設計上の選択です...?

    編集2:さらに掘り下げると、このバグ が明らかになりました。 、InnoDBストレージエンジンに対して提出されました。これは、元の質問のユースケースと非常によく一致しています。バグの解決策は提供されていませんが、1つの解決策はinnodb_autoinc_lock_modeを設定することであるようです。 mysqldを起動する前にmy.cnfファイルで0にします。




    1. キーの長さのないキー指定で使用されるBLOB/TEXT列の「値」

    2. PHP / MySQL:UPDATEクエリを組み合わせますか?

    3. 熱心な-最初のクエリに基づく読み込み

    4. 私のgroupbyが失敗している理由がわかりません