Maison > base de données > tutoriel mysql > Comment puis-je insérer ou mettre à jour efficacement des enregistrements MySQL à l'aide de « ON DUPLICATE KEY UPDATE » ?

Comment puis-je insérer ou mettre à jour efficacement des enregistrements MySQL à l'aide de « ON DUPLICATE KEY UPDATE » ?

Linda Hamilton
Libérer: 2024-12-12 22:34:13
original
912 Les gens l'ont consulté

How Can I Efficiently Insert or Update MySQL Records Using `ON DUPLICATE KEY UPDATE`?

Requête MySQL efficace avec "En cas de mise à jour de clé en double identique à l'insertion"

Pour optimiser les requêtes MySQL qui impliquent l'insertion ou la mise à jour d'enregistrements en fonction de données uniques clés, il est important de tirer parti de la clause « Sur la mise à jour des clés en double ». Cette clause vous permet de spécifier les actions qui doivent être effectuées lorsqu'une clé en double est rencontrée lors d'une insertion.

Lors de l'insertion d'un enregistrement avec une clé unique, vous pouvez spécifier la clause « Sur la mise à jour de la clé en double » pour mettre à jour l'existant. champs au cas où la clé existe déjà. Cela élimine le besoin de spécifier à nouveau explicitement toutes les valeurs de champ, offrant ainsi une requête plus concise et efficace. Par exemple, en considérant la requête MySQL donnée :

INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8)
Copier après la connexion

Si le champ "id" a un index unique, vous pouvez mettre à jour l'enregistrement existant avec la même clé en utilisant :

INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8) 
ON DUPLICATE KEY UPDATE a=VALUES(a), b=VALUES(b), c=VALUES(c), d=VALUES(d), e=VALUES(e), f=VALUES(f), g=VALUES(g)
Copier après la connexion

Dans ce cas, la clause « On Duplicate Key Update » met à jour les champs « a » à « g » avec leurs valeurs respectives dans la clause insert. Cela simplifie la requête en évitant d'avoir à répéter explicitement toutes les valeurs de champ.

Cependant, il convient de noter que si les valeurs existantes dans le tableau correspondent aux valeurs insérées, l'action de mise à jour ne sera pas effectuée. En effet, il n'est pas nécessaire de mettre à jour les champs s'ils contiennent déjà les valeurs souhaitées.

Pour récupérer l'ID de l'enregistrement inséré ou mis à jour, vous pouvez utiliser la fonction "LAST_INSERT_ID()". La syntaxe spécifique pour accéder à cette fonction varie en fonction de l'application backend utilisée. Par exemple, dans LuaSQL, vous pouvez utiliser « conn:getlastautoid() » pour récupérer le dernier ID généré automatiquement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal