MySQL の AUTO_INCREMENT
機能は、連続した主キーを自動的に割り当てます。 ただし、行を削除してもカウンターが常にリセットされるとは限らず、シーケンスにギャップが生じます。 次に挿入された行は、予想よりも高い ID を受け取る可能性があります。
行を削除すると主キーが解放されますが、MySQL の AUTO_INCREMENT
カウンタは自動的に巻き戻りません。割り当てられた最高値から継続されます。
リサイクルされた主キーとして AUTO_INCREMENT
に依存することは強くお勧めできません。これにより、データの不整合が発生する可能性があります。 より良い代替案は次のとおりです:
INSERT
ステートメントを使用して値を手動で割り当てます。シーケンスを維持する必要がある必要がある場合 (ただし、強くお勧めしません)、AUTO_INCREMENT
カウンターを手動でリセットできます。これは危険であり、データベースの整合性を損なう可能性があります:
TRUNCATE TABLE
を使用します。AUTO_INCREMENT
を 1 にリセットします。継続的な AUTO_INCREMENT
シーケンスが望ましいように見えるかもしれませんが、推奨されるプラクティスに従ってデータの整合性を優先することが重要です。
以上が行を削除すると MySQL の AUTO_INCREMENT シーケンスが中断されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。