INSERT ... ON DUPLICATE KEY UPDATE和REPLACE違いがあります。前者は INSERT が失敗した後に UPDATE を実行しますが、後者は DELETE を実行してから INSERT を実行するのと同じです。行全体が消えることがわかります。
INSERT ... ON DUPLICATE KEY UPDATE
REPLACE
具体的には、テーブルに 3 つの列がある場合:
これら 2 つの文の効果は異なります:
前者のエイリアスは変更されませんが、後者は null になります。
重複更新時に挿入は元のレコードを操作します replace は重複があるかどうかを判断し、最初に削除してから挿入します
INSERT ... ON DUPLICATE KEY UPDATE
和REPLACE
違いがあります。前者は INSERT が失敗した後に UPDATE を実行しますが、後者は DELETE を実行してから INSERT を実行するのと同じです。行全体が消えることがわかります。具体的には、テーブルに 3 つの列がある場合:
リーリーこれら 2 つの文の効果は異なります:
リーリー前者のエイリアスは変更されませんが、後者は null になります。
重複更新時に挿入は元のレコードを操作します
replace は重複があるかどうかを判断し、最初に削除してから挿入します