Sabemos que una clave primaria de una tabla no se puede duplicar. Por ejemplo, el número de lista de un estudiante en la tabla de estudiantes siempre debe ser distinto. De manera similar, se espera que EmployeeID sea único en una tabla de empleados. Cuando intentamos insertar una tupla en una tabla donde se repite la clave principal, se produce un error. Sin embargo, con la declaración INSERT IGNORE, podemos evitar que aparezcan tales errores, especialmente cuando se insertan entradas de forma masiva y tales errores pueden interrumpir el flujo de inserción. En su lugar, solo se genera una advertencia.
Casos en los que INSERT IGNORE evita el error
- Al insertar una clave duplicada donde la columna debe contener una CLAVE PRINCIPAL o una restricción ÚNICA
- Al insertar un valor NULL donde la columna tiene una restricción NOT NULL.
- Al insertar una fila en una tabla particionada donde los valores insertados van en contra del formato de partición.
Ejemplo:
Digamos que tenemos una relación, Empleado.
Tabla de empleados:
ID de empleado | Nombre | Ciudad |
---|---|---|
15001 | Aakash | Delhi |
15003 | Sahil | Bangalore |
15010 | John | Hyderabad |
15008 | Shelley | Delhi |
15002 | Ananya | Bombay |
15004 | sia | Puno |
Como podemos observar, las entradas no se ordenan en función de su clave principal, es decir, EmployeeID.
Consulta de muestra:
INSERT IGNORE INTO Employee (EmployeeID, Name, City) VALUES (15002, 'Ram', 'Mumbai');
Salida:
No se insertó ninguna entrada.
Consulta de muestra:
Insertar varios registros
Al insertar varios registros a la vez, los que no se puedan insertar no se insertarán, pero los que se puedan insertar serán:
INSERT IGNORE INTO Employee (EmployeeID, Name, City) VALUES (15007, 'Shikha', 'Delhi'), (15002, 'Ram', 'Mumbai'), (15009, 'Sam', 'Ahmedabad');
Salida:
se insertan la primera y la última entrada; la entrada del medio es simplemente ignorada. No se muestra ningún error.
Desventaja
La mayoría de los usuarios no prefieren INSERT IGNORE sobre INSERT ya que algunos errores pueden pasar desapercibidos. Esto puede causar inconsistencias en la tabla, lo que hace que algunas tuplas no se inserten sin que el usuario tenga la oportunidad de corregirlas. Por lo tanto, INSERT IGNORE debe usarse en condiciones muy específicas.
Este artículo es una contribución de Anannya Uberoi . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA