Opération UPSERT efficace pour mysql: Utilisation d'insert ... sur la mise à jour de la clé en double
]Dans la gestion de la base de données MySQL, il est souvent nécessaire d'effectuer des opérations telles que l'insertion de nouvelles lignes ou la mise à jour des lignes existantes selon que les données existent. C'est ce qu'on appelle l'opération "Upsert" (insérer ou mettre à jour).
mysql fournit le insert ... sur la mise à jour de la clé en double
syntaxe pour implémenter efficacement la fonction upsert. Son principe de travail est le suivant:
INSERT INTO `table_name`
(`column1`, `column2`, ...)
VALUES
(value1, value2, ...)
ON DUPLICATE KEY UPDATE
`column1` = value1_updated,
`column2` = value2_updated,
...
La clause insérer
spécifie la valeur à insérer dans le tableau. sur la clause de clé en double
La clause définit l'action à effectuer lorsqu'il y a une ligne avec la même clé principale (ou index unique) dans le tableau.
Par exemple, considérez le tableau suivant:
CREATE TABLE `usage` (
`thing_id` INT NOT NULL PRIMARY KEY,
`times_used` INT DEFAULT 0,
`first_time_used` TIMESTAMP
);
Si vous souhaitez insérer de nouvelles données pour la ligne avec thing_id
de 4815162342, ajoutez 1 à la colonne timeS_Used
et définissez first_time_used
à l'immeuble actuel, Vous pouvez utiliser la requête UPSERT suivante:
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 ligne avec thing_id
de 4815162342 existe déjà, la requête mettra à jour la colonne times_used
, tandis que first_time_used
reste inchangé. Sinon, une nouvelle ligne sera insérée.
INSERT ... Sur Duplicate Key Update
est une technologie flexible et efficace pour effectuer des opérations UPSERT dans MySQL. Il vous permet d'effectuer des opérations d'insert et de mise à jour avec une seule requête, de simplifier le code et d'améliorer les performances.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3