Mysql insertar ignorar la tecla duplicada

Mysql insertar ignorar la tecla duplicada
A menudo hay datos conflictivos en tablas o conjuntos de resultados. También lleva mucho tiempo corregir, y a menudo deben evitarse los registros repetidos. Identificar registros duplicados y eliminarlos de cualquiera de las tablas es necesario. Esta sección explicará cómo evitar que los datos duplicados aparezcan dentro de una tabla y cómo eliminar los registros duplicados actuales. En esta guía, aprenderá a usar la cláusula Insertar Ignore para evitar el error.

Sintaxis:

Aquí está la sintaxis para la consulta de Ignore Insert.

>> Insertar los valores de table_name (col1, col2, col3) (value_list), (value_list), (value_list);

Insertar Ignorar a través de Workbench:

Abre tu MySQL Workbench 8.0 desde su sistema y conectarlo a la instancia de la base de datos.

En el área de comando, debe crear una tabla "empleado" con cuatro columnas donde una de ellas debe especificarse como "única". Pruebe la siguiente consulta en el área de consulta de Navigator para crear esta tabla. Seleccione la consulta completa y haga clic en el signo flash para ejecutarla.

>> Crear empleado de tabla (ID int primario no nulo, nombre Varchar (50) no nulo, edad varchar (50), salario varchar (50), único (id));

Tras la creación, puede encontrar la tabla "empleado" dentro de la lista bajo la opción de "tablas" debajo de la base de datos "datos".

En la vista de la cuadrícula, puede ingresar los registros sin escribir ninguna consulta. Entonces, abra la vista de la cuadrícula de la tabla "Empleado" y agregue algunos registros como se muestra a continuación. Hemos ingresado todos los registros únicos sin duplicados. Presione el botón 'Aplicar' para aplicar los cambios.

Se abrirá una nueva ventana con las consultas relevantes relacionadas con los registros que hemos ingresado anteriormente. Esta pantalla se puede llamar una pantalla de "revisión". Si quieres cambiar algo, puedes hacerlo aquí. De lo contrario, presione el botón Aplicar para ejecutar las consultas.

Como puede ver, la consulta se ha ejecutado con éxito y los registros se guardan en la base de datos y su tabla "Empleado". Hubiera generado un error si hubiéramos agregado algún valor duplicado en la columna "ID". Toque el botón "Finalizar".

Esto se trataba de la vista de la cuadrícula. Ahora, insertaremos registros a través del área de consulta. Mientras tanto, hemos estado insertando registros duplicados esta vez para verificar la salida. Entonces, hemos probado la siguiente consulta de "insertar", donde tenemos dos listas de valores. Ambas listas de valores tienen el mismo valor en la columna 'ID'. Seleccione la consulta y presione el signo flash para ejecutar la consulta.

La consulta no funcionará correctamente y generará un error debido a los valores duplicados en el comando insertar como se muestra en la imagen.

Ahora intente la misma consulta anterior con la cláusula insertar ignore y ejecutarla como se presenta.

Puede ver que no genera un error en el área de salida, pero ofrece una advertencia de que el comando contiene valores duplicados.

Actualice la vista de la cuadrícula de la tabla "Empleado". La consulta insertar ignore ha funcionado la mitad. Insertó la primera lista de valores en la tabla, pero la segunda lista de valores se ha ignorado debido al valor repetido "13".

Insertar Ignore a través de la línea de línea de comandos:

Para comprender este concepto, abramos el shell del cliente de línea de comandos mysql en su sistema. Al preguntar, escriba su contraseña MySQL para comenzar a trabajar en ella.

Ahora es el momento de crear una mesa. Prueba el siguiente comando para hacerlo. Hemos creado una tabla llamada 'Ministro', mientras que una de sus columnas tiene una restricción única. Está claro que la columna "ID" solo aceptará los valores únicos y no los valores duplicados.

>> Crear datos de tabla.Ministro (Mid int Prime Key único no nulo, nombre Varchar (45), City Varchar (45));

La consulta funciona de manera apropiada y se ha creado la tabla. Para comprender la cláusula Insertar Ignore, primero debe ver el comando de inserción simple que funciona. Si está utilizando el comando insertar para insertar varios datos de información en una tabla, MySQL suspende la transacción y genera una excepción si ocurre un error durante todo el procesamiento. Como consecuencia, la tabla no tiene filas agregadas. Insertemos el primer registro en la tabla "Ministro" utilizando la consulta a continuación. La consulta funcionará con éxito porque la mesa está actualmente en blanco y no hay registro para contraparte con.

Como la columna "ID" es única, cuando probamos las siguientes instrucciones en el shell de línea de comandos, generará un error. Esto se debe a que hemos agregado el valor "11" en la consulta anterior, y debido a la clave única, no nos permite agregar el valor repetido nuevamente.

Por lo tanto, al verificar la tabla, podemos ver que la tabla solo tiene 1 registro agregado por la primera consulta de inserción.

>> seleccionar * de los datos.ministro;

Por el contrario, si está utilizando la cláusula Insert Ignore, las filas de datos incorrectas que activan el error se pasarán por alto e ingresarán solo las precisas. En el siguiente comando a continuación, hemos estado utilizando el comando insertar ignore para evitar agregar valores repetidos a la tabla y pasar por alto el error. Como puede ver, la primera lista de valores tiene un valor duplicado "11" igual que en la consulta anterior. Si bien la segunda lista de valores es única, mostrará 1 registro insertado en la tabla, que es la segunda lista de valores. MySQL también indica que solo se ha insertado 1 registro, y 1 advertencia se genera en el mensaje. Luego puede suponer que si estamos usando la cláusula Insert Ignore, MySQL proporciona una advertencia.

Como puede ver en la salida a continuación, solo tenemos dos registros en esta tabla, una lista de valores proporcionados en la consulta anterior, que se pasa por alto.

>> seleccionar * de los datos.ministro;

Conclusión:

Hemos realizado todos los ejemplos necesarios de insertar ignorar en valores duplicados a través de mysql workbench y mysql de línea de comandos shell.