¿Qué hace INSERTAR EN LA ACTUALIZACIÓN DE CLAVE DUPLICADA en MySQL?

Que Hace Insertar En La Actualizacion De Clave Duplicada En Mysql



Mientras trabajan con una base de datos MySQL, los usuarios pueden ocasionalmente encontrar un error de violación de clave duplicada cuando intentan insertar un nuevo registro en una tabla. Este error ocurre cuando ya existe una fila con la misma clave principal o clave única. Sin embargo, este problema se puede solucionar actualizando los registros existentes con los nuevos valores. En tales casos, habilitar el “ INSERTAR EN ACTUALIZACIÓN DE CLAVE DUPLICADA La característica ” resolverá efectivamente este problema.

Esta publicación demostrará qué es 'INSERTAR EN ACTUALIZACIÓN DE CLAVE DUPLICADA' y cómo funciona en MySQL.







¿Qué hace INSERTAR EN LA ACTUALIZACIÓN DE CLAVE DUPLICADA en MySQL?

En MySQL, el INSERTAR EN ACTUALIZACIÓN DE CLAVE DUPLICADA es una característica avanzada de la declaración INSERT que combina dos funcionalidades en una sola operación. Por ejemplo, inserta un registro en una tabla específica si el registro dado aún no existe. Sin embargo, si el registro deseado ya existe, actualizará el registro existente con el nuevo valor.



Para habilitar la función INSERTAR EN ACTUALIZACIÓN DE CLAVE DUPLICADA, los usuarios deben seguir la siguiente sintaxis:



INSERTAR EN [ nombre de la tabla ] ( [ col_1 ] , [ col_2 ] , ... )
VALORES ( [ valor_1 ] , [ val_2 ] , ... )
EN ACTUALIZACIÓN DE CLAVE DUPLICADA [ col_1 ] = [ valor_1 ] , [ col_2 ] = [ val_2 ] , ...;

 





Especifique el nombre de la tabla, los nombres de las columnas y los valores de su elección en lugar de table_name, col_1, col_2, … y val_1, val_2, …, etc.

Ejemplo: ¿Cómo usar la función INSERTAR EN LA ACTUALIZACIÓN DE CLAVE DUPLICADA en MySQL?



Primero, conéctese a la base de datos MySQL con los privilegios apropiados y luego ejecute el siguiente comando para obtener los datos de la tabla 'linuxhint_author':

SELECCIONAR * DESDE linuxhint_autor;

 

El comando select recupera todos los registros de la tabla “linuxhint_author”:

Ahora ejecute el siguiente comando SQL para insertar o actualizar un registro específico en la tabla 'linuxhint_author', con la característica 'ON DUPLICATE KEY UPDATE' habilitada:

INSERTAR EN linuxhint_author ( identificación , nombre, edad, rango de autor, correo electrónico )
VALORES ( 6 , 'Álex Johnson' , 29 , 3 , 'alex@example.com' )
EN ACTUALIZACIÓN DE CLAVE DUPLICADA
nombre = VALORES ( nombre ) ,
edad = VALORES ( edad ) ,
rango de autor = VALORES ( autorRank ) ,
correo electrónico = VALORES ( correo electrónico ) ;

 

Dado que el registro especificado aún no existe en la tabla 'linuxhint_author', se insertará correctamente en la tabla seleccionada:

Insertemos un registro duplicado y veamos cómo el ' EN ACTUALIZACIÓN DE CLAVE DUPLICADA ” función de trabajo en MySQL:

INSERTAR EN linuxhint_author ( identificación , nombre, edad, rango de autor, correo electrónico )
VALORES ( 3 , 'Michael Johnson' , 28 , 4 , 'michael@example.com' )
EN ACTUALIZACIÓN DE CLAVE DUPLICADA
nombre = VALORES ( nombre ) ,
edad = VALORES ( edad ) ,
rango de autor = VALORES ( autorRank ) ,
correo electrónico = VALORES ( correo electrónico ) ;

 

En el siguiente fragmento, se puede ver claramente que el registro ya existente se actualizó con éxito con los nuevos valores:

La función 'INSERTAR EN CLAVE DUPLICADA' también se puede aplicar a una columna específica en lugar de a todo el registro:

INSERTAR EN linuxhint_author ( identificación , rango de autor )
VALORES ( 3 , 2 )
EN ACTUALIZACIÓN DE CLAVE DUPLICADA authorRank = VALORES ( autorRank ) ;

 

En el código anterior, el 'autorRank' de un autor con el ID '3' se actualiza a un nuevo valor '2':

Así es como funciona la función 'INSERTAR EN ACTUALIZACIÓN DE CLAVE DUPLICADA' en MySQL.

Conclusión

En MySQL, el INSERTAR EN ACTUALIZACIÓN DE CLAVE DUPLICADA es una característica avanzada que nos permite combinar la funcionalidad de insertar una nueva fila y actualizar/modificar una fila ya existente en una sola operación. Esta función ayuda a los usuarios a evitar el error de 'violación de clave duplicada' al intentar insertar una nueva fila en una tabla en particular. Esta publicación ha explicado qué es 'INSERTAR EN ACTUALIZACIÓN DE CLAVE DUPLICADA' y cómo funciona en MySQL.