Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelles sont les différences pratiques entre `REPLACE` et `INSERT ... ON DUPLICATE KEY UPDATE` dans MySQL ?

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é.