重複キーに関する InnoDB の自動インクリメントの問題
主キーが自動インクリメントに設定されている InnoDB データベース テーブルでは、次のようになります。重複キーが検出された場合でも、自動インクリメント カウンタがインクリメントし続けることが観察されました。この動作により、提供された例で示されているように、ID が連続しないことになります。この問題を解決するには、次の解決策の実装を検討してください。
MySQL 構成の変更
innodb_autoinc_lock_mode 構成オプションを「0」に設定すると、従来の自動インクリメント ロック モードに切り替えることができます。このモードでは、重複キーを挿入しようとする場合でも、すべての INSERT ステートメントで自動インクリメント列に連続した値が割り当てられます。
SET GLOBAL innodb_autoinc_lock_mode = 0;
連続した値が割り当てられることに注意してください。アプリケーション ロジックでは ID に依存しないでください。その主な目的は、各レコードに一意の識別子を提供することです。連続 ID は見た目には美しいかもしれませんが、実際的な利点はなく、分散システムで問題が発生する可能性があります。
以上がキーが重複しているにもかかわらず、InnoDB 自動インクリメント カウンターがインクリメントし続けるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。