MySQL AUTO_INCREMENT がロールバックの影響を受けない理由
MySQL の AUTO_INCREMENT フィールドは、トランザクションのステータスに関係なく一意の値を維持します。この動作は、次のシナリオに由来します:
シナリオ:
問題:
ロールバック後に 557 値を再利用すると、いくつかの未解決の問題が発生します:
結果:
このため、Oracle のシーケンス番号も独立して動作します。 transactions.
回避策:
ギャップのない自動インクリメント値を維持することが重要な場合、トランザクション ロールバックは使用できません。代わりに、ステータス フラグをレコードに追加できます。
このソリューションには独自の課題がありますが、自動増分ギャップを回避しながら監査証跡を保持する方法を提供します。
以上がMySQL の AUTO_INCREMENT がロールバック後にリセットされないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。