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

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
