Operación eficiente de Upsert para mysql: usando insertar ... en la actualización de la tecla duplicada
]En MySQL Database Management, a menudo es necesario realizar operaciones como insertar nuevas filas o actualizar las filas existentes en función de si los datos existe. Esto se llama operación "Upsert" (insertar o actualizar).
mysql proporciona la sintaxis insertar ... en duplicate key
para implementar eficientemente la función Upsert. Su principio de trabajo es el siguiente:
INSERT INTO `table_name`
(`column1`, `column2`, ...)
VALUES
(value1, value2, ...)
ON DUPLICATE KEY UPDATE
`column1` = value1_updated,
`column2` = value2_updated,
...
La cláusula insertar
especifica el valor que se insertará en la tabla. en la cláusula de la clave duplicada
define la acción que se realizará cuando hay una fila con la misma clave primaria (o índice único) en la tabla.
Por ejemplo, considere la siguiente tabla:
CREATE TABLE `usage` (
`thing_id` INT NOT NULL PRIMARY KEY,
`times_used` INT DEFAULT 0,
`first_time_used` TIMESTAMP
);
Si desea insertar nuevos datos para la fila con thing_id
de 4815162342, agregue 1 a la columna times_used
y set primero_time_used
a la campaña de tiempo actual, Puede usar la consulta de seguimiento de Upsert:
INSERT INTO `usage`
(`thing_id`, `times_used`, `first_time_used`)
VALUES
(4815162342, 1, NOW())
ON DUPLICATE KEY UPDATE
`times_used` = `times_used` 1
Si la fila con thing_id
de 4815162342 ya existe, la consulta actualizará la columna times_used
, mientras first_time_used
sigue sin cambios. De lo contrario, se insertará una nueva línea.
Insertar ... En Duplicate Key Update
es una tecnología flexible y eficiente para realizar operaciones UPSERT en MySQL. Le permite realizar operaciones de inserción y actualización con una sola consulta, simplificando el código y mejorando el rendimiento.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3