REPLACE
effectue en interne une suppression puis une insertion. Cela peut causer des problèmes si vous avez une contrainte de clé étrangère pointant vers cette ligne. Dans cette situation, le REPLACE
pourrait échouer ou pire :si votre clé étrangère est configurée pour une suppression en cascade, le REPLACE
entraînera la suppression de lignes d'autres tables. Cela peut se produire même si la contrainte a été satisfaite avant et après le REPLACE
opération.
Utilisation de INSERT ... ON DUPLICATE KEY UPDATE
évite ce problème et est donc préféré.