MySQL MariaDB

Insertar MySQL Ignorar clave duplicada

Insertar MySQL Ignorar clave duplicada
A menudo hay datos contradictorios en tablas o conjuntos de resultados. También lleva mucho tiempo corregirlo y, a menudo, es necesario evitar los registros repetidos. Es necesario identificar registros duplicados y eliminarlos de cualquier tabla. Esta sección explicará cómo evitar que aparezcan datos duplicados dentro de una tabla y cómo eliminar los registros duplicados actuales. En esta guía, aprenderá a utilizar la cláusula INSERT IGNORE para evitar el error.

Sintaxis:

Aquí está la sintaxis de la consulta INSERT IGNORE.

>> INSERTAR IGNORAR EN table_name (col1, col2, col3) VALUES (value_list), (value_list), (value_list);

INSERT IGNORE via Workbench:

Abra su MySQL Workbench 8.0 de su sistema y conéctelo 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 del navegador para crear esta tabla. Seleccione toda la consulta y haga clic en el signo de flash para ejecutarla.

>> CREAR TABLA Empleado (ID int PRIMARY KEY NOT NULL, Nombre varchar (50) NOT NULL, Edad Varchar (50), Salario varchar (50), ÚNICO (ID));

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

En la vista de cuadrícula, puede ingresar los registros sin escribir ninguna consulta. Por lo tanto, abra la vista de 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 arriba. Esta pantalla puede denominarse pantalla "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". Habría generado un error si hubiéramos agregado algún valor duplicado en la columna "ID". Toca el botón "Finalizar".

Todo esto se trataba de la vista de 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. Por lo tanto, hemos probado la consulta "INSERTAR" a continuación, 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 de flash para ejecutar la consulta.

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

Ahora intente la misma consulta anterior con la cláusula INSERT IGNORE y ejecútela como se presenta.

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

Actualizar la vista de cuadrícula de la tabla "Empleado". La consulta INSERT IGNORE ha funcionado a 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 comandos Shell:

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

Ahora es el momento de crear una tabla. Pruebe 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 TABLA de datos.ministro (Mid INT PRIMARY KEY ÚNICO NO NULO, Nombre VARCHAR (45), Ciudad VARCHAR (45));

La consulta funciona correctamente y la tabla se ha creado. Para comprender la cláusula INSERT IGNORE, primero debe ver el funcionamiento del comando INSERT simple. Si está utilizando el comando INSERT 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 el procesamiento. Como consecuencia, la tabla no tiene filas agregadas. Insertemos el primer registro en la tabla "ministro" usando la consulta que se muestra a continuación. La consulta funcionará correctamente porque la tabla está actualmente en blanco y no hay ningún registro que corresponda con.

Como la columna "ID" es ÚNICA, cuando probamos la siguiente instrucción en el shell de la 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 INSERT.

>> SELECCIONAR * DE datos.ministro;

Por el contrario, si está utilizando la cláusula INSERT IGNORE, las filas de datos incorrectas que desencadenan el error se pasarán por alto y solo se ingresarán las precisas. En el siguiente comando, hemos estado usando el comando INSERT IGNORE para evitar agregar valores repetidos en 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 se genera 1 advertencia en el mensaje. Entonces puede suponer que si estamos usando la cláusula INSERT IGNORE, MySQL proporciona una advertencia.

Como puede ver en el resultado a continuación, solo tenemos dos registros en esta tabla: la primera lista de valores proporcionada en la consulta anterior, que se pasa por alto.

>> SELECCIONAR * DE datos.ministro;

Conclusión:

Hemos realizado todos los ejemplos necesarios de INSERT IGNORE en valores duplicados a través de MySQL Workbench y la línea de comandos del cliente de MySQL.

SuperTuxKart para Linux
SuperTuxKart es un gran título diseñado para ofrecerte la experiencia Mario Kart de forma gratuita en tu sistema Linux. Es bastante desafiante y diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth es uno de los juegos de estrategia de código abierto más populares que puedes jugar en este momento. Este juego no solo ha esta...
0 A.D. Tutorial
De los muchos juegos de estrategia que existen, 0 A.D. logra destacarse como un título completo y un juego táctico muy profundo a pesar de ser de códi...