自動増分による ON DUPLICATE KEY 更新について
問題の説明:
へのデータの挿入ON DUPLICATE KEY UPDATE 句を含むテーブルでは予期しない ID が発生します重複する値が見つかった場合は増分します。具体的には、ID は最初の挿入時に増加しますが、更新をトリガーすると同じままになります。
説明:
MySQL ドキュメントによると、ON DUPLICATE KEY UPDATE が実行されると、句が使用されると、MySQL は最初に INSERT 操作を試みます。これによりキー値が重複する場合は、代わりに UPDATE 操作が実行されます。ただし、自動インクリメント列の場合、インクリメントは INSERT 操作中にのみ発生します。したがって、UPDATE 操作がトリガーされても、自動インクリメント値は同じままです。
解決策:
適切な自動インクリメントを確保するには、ギャップのない ID シーケンスを持つことを信頼することをお勧めします。代わりに、増分値を手動で計算して管理するか、出力で AUTO_INCREMENT 関数を使用することを検討してください。
追加メモ:
以上がMySQL で ON DUPLICATE KEY UPDATE を使用しても自動インクリメント ID が増加しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。