Al sincronizar tablas o bases de datos, algunas veces es útil tener una forma para actualizar una fila si ya hay una entrada para una clave.
Utilizando la sintaxis de MySQL, ON DUPLICATE KEY UPDATE es posible insertar una fila, si esta no existe, o actualizarla si es que ya existe:
id,
text,
sync_time
) VALUES (
1,
'new',
UNIX_TIMESTAMP()
) ON DUPLICATE KEY UPDATE
text = VALUES(text),
sync_time = VALUES(sync_time)
Para actualizar tabla1 con todo los datos de tabla2, se puede hacer con una sola consulta sin necesidad de programar ninguna lógica:
(SELECT id, text, sync_time FROM tabla2)
ON DUPLICATE KEY UPDATE
text = VALUES(text),
sync_time = VALUES(sync_time)
Vía: Code Spatter
2 Respuestas para "Cambiar INSERT por UPDATE para claves duplicadas"
Thanks for the link back and for the translation.
Exelente, necesitaba esto
Comentarios: