"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment l'insert de MySQL ... sur la mise à jour de la mise à jour en double gère-t-il les opérations UPSERT?

Comment l'insert de MySQL ... sur la mise à jour de la mise à jour en double gère-t-il les opérations UPSERT?

Publié le 2025-02-26
Parcourir:443

How Does MySQL's INSERT ... ON DUPLICATE KEY UPDATE Handle Upsert Operations?

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.

Dernier tutoriel Plus>

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