REPLACE
internamente realiza una eliminación y luego una inserción. Esto puede causar problemas si tiene una restricción de clave externa que apunta a esa fila. En esta situación, REPLACE
podría fallar o algo peor:si su clave externa está configurada para eliminar en cascada, el REPLACE
hará que se eliminen las filas de otras tablas. Esto puede suceder incluso si la restricción se cumplió tanto antes como después de REPLACE
operación.
Usando INSERT ... ON DUPLICATE KEY UPDATE
evita este problema y por lo tanto se prefiere.