sql >> Base de Datos >  >> RDS >> Mysql

¿Cuáles son las diferencias prácticas entre `REEMPLAZAR` e `INSERTAR... EN LA ACTUALIZACIÓN DE CLAVE DUPLICADA` en MySQL?

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.