Realizar inserciones SQL sin tener en cuenta las claves foraneas

Tiempo de lectura: 2 minutos

Voy a explicar para qué sirve el comando INSERT IGNORE INTO en MySQL o MariaDB.

¿Qué hace el comando INSERT IGNORE INTO?

INSERT IGNORE INTO se utiliza para insertar datos en una tabla, pero con la particularidad de que si se encuentra un conflicto de clave duplicada o una violación de una restricción única, en lugar de generar un error, simplemente ignora la fila conflictiva y continúa con la ejecución de la consulta. Esto significa que si intentas insertar una fila que ya existe en la tabla, en lugar de arrojar un error, MySQL o MariaDB omitirán la fila y continuarán con las filas restantes.

Sintaxis básica:

INSERT IGNORE INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

Donde:

  • table_name es el nombre de la tabla en la que deseas insertar datos.
  • (column1, column2, ...) son los nombres de las columnas en los que deseas insertar datos.
  • (value1, value2, ...) son los valores que deseas insertar en las respectivas columnas.

Ventajas de INSERT IGNORE INTO:

  1. Evita errores por duplicados: La ventaja principal de INSERT IGNORE INTO es que evita que se produzcan errores cuando intentas insertar datos duplicados. Esto es especialmente útil en situaciones en las que no estás seguro de si los datos ya existen en la tabla y quieres asegurarte de que la consulta no se interrumpa debido a duplicados.
  2. Sencillez de uso: La sintaxis es sencilla y fácil de entender, lo que facilita su uso, especialmente en casos donde solo deseas insertar datos sin preocuparte por si ya existen en la tabla.

Limitaciones de INSERT IGNORE INTO:

  1. No actualiza datos existentes: INSERT IGNORE INTO solo inserta filas si no se encuentra una clave duplicada. No actualiza los datos existentes en la tabla. Si necesitas actualizar datos existentes en lugar de ignorarlos, debes considerar otras opciones como INSERT ... ON DUPLICATE KEY UPDATE o REPLACE.

Ejemplo de uso:

Supongamos que tienes una tabla llamada productos con una columna codigo definida como clave única y deseas insertar un nuevo producto en ella. Puedes utilizar INSERT IGNORE INTO de la siguiente manera:

INSERT IGNORE INTO productos (codigo, nombre, precio)
VALUES ('P123', 'Producto A', 25.99);

Si el código ‘P123’ ya existe en la tabla, esta fila se ignorará y no se producirá un error.

En resumen, INSERT IGNORE INTO es útil cuando deseas insertar datos en una tabla y evitar errores por duplicados. Sin embargo, ten en cuenta que no es la mejor opción si necesitas actualizar datos existentes. Si eso es lo que necesitas, considera otras opciones como INSERT ... ON DUPLICATE KEY UPDATE.

Deja un comentario