REPLACE
führt intern eine Löschung und dann eine Einfügung durch. Dies kann Probleme verursachen, wenn Sie eine Fremdschlüsseleinschränkung haben, die auf diese Zeile zeigt. In dieser Situation ist REPLACE
könnte fehlschlagen oder schlimmer:Wenn Ihr Fremdschlüssel auf Kaskadenlöschung eingestellt ist, wird REPLACE
bewirkt, dass Zeilen aus anderen Tabellen gelöscht werden. Dies kann passieren, obwohl die Einschränkung sowohl vor als auch nach dem REPLACE
erfüllt wurde Betrieb.
Mit INSERT ... ON DUPLICATE KEY UPDATE
vermeidet dieses Problem und wird daher bevorzugt.