Blog de Gonzalo

INSERTAR DUPLICADOS

Hay veces, que sin darnos cuenta intentamos insertar valores duplicados en mysql y claro salta un error, sobre todo por duplicidad de primary key ante ésto mysql ofrece dos soluciones:

  • INSERT IGNORE: La sintaxis es igual que el INSERT INTO normal y se usa muy habitualmente cuando es el usuario o la aplicación quien pone el valor de la primary key. El problema de usar INSERT IGNORE es que cuando se hace una inserción de un registro que se supone nuevo, si la primary key que se está inserando ya existe, mysql simplemente "ignora" la inserción y sigue la operación sin que se produzca ningún error en la base de datos. De no poner la cláusula IGNORE, saldrçia un error de "duplicate key" y si no está controlado ese estado puede hacerte colapsar el script.
  • Si lo que se quiere es que si existe la clave, en lugar de ignorarlo usar la opción de ON DUPLICATE KEY UPDATE en el INSERT. La sintaxis es: INSERT INTO tabla (a, b, c) VALUES (1, 2, 3) ON DUPLICATE KEY UPDATE b=2, c=3. donde se supone que la "a" es la primary key otro ejemplo sería INSERT INTO tabla (a, b, c) VALUES (1, 2, 3), (4, 5, 6) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c)
Croe que estas opciones que ofrece mysql son bastante útiles y prácticas.

Compartir en twitter