Está en la página 1de 1

Insertar o actualizar registros en MySQL

By Manuel Jess Carrascosa de la Blanca in General


En muchas ocasiones nos puede interesar insertar un registro o actualizarlo si e
ste ya existe. Para hacer esto tenemos varias opciones, como por ejemplo estas d
os:
Opcin A:
Comprobamos si el registro ya existe.
Si no existe lo insertamos.
Si existe lo actualizamos.
Opcin B:
Intentamos insertar el registro.
Si se produce un error lo actualizamos.
Pero MySQL nos da una opcin mucho ms elegante para realizar esto. Se trata de util
izar la construccin ON DUPLICATE KEY UPDATE. Podemos ver la documentacin de esta c
onstruccin en el manual de MySQL. Pero vamos a ver un par de ejemplos:
1
INSERT INTO tabla (a, b, c) VALUES (1, 2, 3)
2
ON DUPLICATE KEY UPDATE b=2, c=3
De esta forma si ya existe un registro con el valor del campo a igual a 1, suponie
ndo que el campo a sea la clave, se actualizarn los valores. Y si tenemos varios r
egistros? Entonces podemos usarlo de la forma siguiente:
1
INSERT INTO tabla (a, b, c) VALUES (1, 2, 3), (4, 5, 6)
2
ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c)
De esta forma se coger los valores b=2 y c=3 para la clave a=1 y b=5 y c=6 para l
a clave a=4.

También podría gustarte