MySQL cómo insertar una nueva fila solo si los datos no existen

MySQL cómo insertar una nueva fila solo si los datos no existen
MySQL es un famoso RDBMS de código abierto para almacenar datos en bases de datos. Insertar datos en tablas de su base de datos es una tarea común. A veces, los usuarios no desean insertar datos duplicados para eliminar la redundancia. MySQL permite a los usuarios insertar datos solo si aún no existen datos similares.

Esta publicación discutirá insertar una nueva fila solo si los datos aún no existen en la tabla MySQL. Antes de comenzar con esta publicación, asegúrese de iniciar sesión en su servidor local MySQL y haber elegido una base de datos donde desea trabajar.

Inserte una nueva fila solo si los datos no existen utilizando la instrucción "Insertar ignorar"

Bueno, la respuesta a la pregunta en el título es bastante simple y directa. Simplemente use el "INSERTAR"Palabra clave junto con el"IGNORARPalabra clave. Esto asegurará que los nuevos datos o la consulta de inserción solo se ejecuten cuando no se encuentre la entrada previa de los datos en MySQL. Para obtener una breve descripción de esto, eche un vistazo a la siguiente sintaxis:

Insertar ignore en [table-name] ([column1-name], [column2-name], [column3-name]) valores ([value1], [value2], [value3]);

Veamos un ejemplo si el usuario desea ingresar un valor de fila "1","John" y "Gama" en el "Cliente"Tabla para las columnas"Identificación,""Nombre de pila" y "Apellido"Respectivamente. Ejecute esta consulta para insertar estos valores si los hay si hay una fila que ya tenga estos valores ya:

Seleccionar * del cliente;
Inserte los valores de Ignore en Cliente (ID, FirstName, LastName) (1, 'John', 'Doe');

La salida contiene dos tablas que muestran datos de la tabla antes y después de ejecutar la consulta. Puede notar que nada está cambiando en la tabla porque la fila ya existía, por lo que MySQL ha ignorado con éxito el proceso de inserción sin mostrar el error:

Inserte una nueva fila solo si los datos no existen utilizando la cláusula "Donde no existe"

En mysql, el "DÓNDE NO EXISTE"La cláusula evita la inserción de filas si ya existen en la tabla cuando se usa en el"INSERTAR ENDeclaración con una subconsulta para definir una condición. Cuando esta cláusula se usa con la subconsulta "(Seleccionar * de [Nombre de tabla] [columna-name] = [expresión]);"Comprueba si existe una fila en la tabla que cumple la condición. Si existe una fila, el "Donde no existe"La cláusula devolverá un valor falso y el"SELECCIONAR"La declaración no devolverá ninguna fila. Como resultado, la fila no se insertará en la tabla. La sintaxis se proporciona a continuación:

Insertar en [Tabla-Name] ([columna1-name], [column2-name], [column3-name])
Seleccione [Value1], [Value2], [Value3]
Donde no existe (seleccione * de [Nombre de tabla] [columna-name] = [expresión]);

Veamos un ejemplo si el usuario desea insertar una fila en la tabla de empleados que contiene valores "1","Americano" y "Henriot"En las columnas"identificación","Nombre de empresa" y "Nombre de contacto"Respectivamente. Pero solo si una fila con una identificación de "1"No se encuentra en la tabla o no es existente. En ese caso particular, la consulta se convertirá:

Seleccionar * del empleado;
Insertar en el empleado (ID, CompanyName, ContactName)
Seleccione 1, 'Americanos', 'Henriot'
Donde no existe (seleccione * del empleado donde id = 1);

La salida muestra una nueva fila que no se inserta como la fila con el "identificación" igual a "1"Ya existía.

Inserte una nueva fila solo si los datos no existen utilizando la cláusula "En la clave de la clave duplicada"

Bueno, otra forma es usar el "En la actualización de clave duplicada"Cláusula en mysql. Como esta cláusula se usará con la consulta "Insertar en" formando una ejecución "if-else". Entonces esto significa que los datos dentro de la tabla solo se actualizarán si es único. De lo contrario, no ocurriría ningún cambio. La sintaxis general para esto es la siguiente:

Insertar en [Tabla-Name] ([columna1-name], [column2-name], [column3-name]) valores ([value1], [value2], [value3])
En la actualización de la tecla duplicada [column1-name] = [column1-name];

Veamos un ejemplo, para insertar valores en "2","Pascala","Nixon","Londres","Reino Unido" y "(171) 555-7788" en la mesa "Cliente"Para las columnas"Identificación","Nombre de pila","Apellido","ciudad","país" y "teléfono"Respectivamente. Si la fila aún no existe, se insertará. De lo contrario, actualizará los valores donde el "ID = ID"La condición se encuentra. Ejecute esta consulta:

Seleccionar * del cliente;
Insertar en el cliente (ID, FirstName, LastName, City, Country, Phone)
Valores (2, 'Pascale', 'Nixon', 'Londres', 'Reino Unido', '(171) 555-7788')
En la clave duplicada actualización id = id;

Esta es la tabla antes de ejecutar la consulta, puede ver "Identificación" igual a "2" no existe:

Después de ejecutar la consulta, esta consulta insertará nuevas filas en la tabla:

Ha insertado con éxito una nueva fila, ya que los datos no existen antes de ejecutar la consulta.

Conclusión

En MySQL, inserte una nueva fila solo si los datos ya no existen utilizando el "Insertar ignorar"Declaración o"Donde no existe"Cláusula en el"INSERTAR EN" declaración. Otra forma de hacer esto es usar el "En la actualización de clave duplicada"Cláusula en el"INSERTAR EN"Declaración para actualizar si la fila ya existe. De lo contrario, agregue una nueva fila. La publicación discutió cómo insertar una nueva fila solo si los datos no existen.