Maison > base de données > tutoriel mysql > Comment effectuer des mises à jour groupées dans MySQL à l'aide de INSERT INTO ... SELECT ... ON DUPLICATE KEY UPDATE ?

Comment effectuer des mises à jour groupées dans MySQL à l'aide de INSERT INTO ... SELECT ... ON DUPLICATE KEY UPDATE ?

DDD
Libérer: 2024-12-13 00:56:17
original
292 Les gens l'ont consulté

How to Perform Bulk Updates in MySQL Using INSERT INTO ... SELECT ... ON DUPLICATE KEY UPDATE?

Effectuer des mises à jour groupées avec INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE

Lors de la tentative d'insertion de nouvelles données dans un Dans la table, il peut y avoir des cas où les enregistrements existants avec des clés uniques identiques doivent être mis à jour avec les dernières valeurs. MySQL fournit une syntaxe pratique pour de tels scénarios en utilisant l'instruction INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE.

Dans votre cas, vous devez mettre à jour toutes les colonnes sauf exp_id, create_by, location, animal , heure de début et heure de fin. La syntaxe de cette clause de mise à jour est :

ON DUPLICATE KEY UPDATE <column_name>=<select_column_name>, ...
Copier après la connexion

Ici, fait référence aux colonnes de la clause INSERT INTO, tandis que fait référence aux colonnes correspondantes dans la clause SELECT.

En fonction de votre requête, l'instruction complète ressemblerait à ceci :

INSERT INTO lee(exp_id, created_by, location, animal, starttime, endtime, entct, inact, inadur, inadist, smlct, smldur, smldist, larct, lardur, lardist, emptyct, emptydur)
SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct, t.inact, t.inadur, t.inadist, t.smlct, t.smldur, t.smldist, t.larct, t.lardur, t.lardist, t.emptyct, t.emptydur
FROM tmp t WHERE uid=x
ON DUPLICATE KEY UPDATE entct=t.entct, inact=t.inact, inadur=t.inadur, inadist=t.inadist, smlct=t.smlct, smldur=t.smldur, smldist=t.smldist, larct=t.larct, lardur=t.lardur, lardist=t.lardist, emptyct=t.emptyct, emptydur=t.emptydur;
Copier après la connexion

Avec cette instruction, MySQL insérera les données de tmp dans lee, et si une clé en double est rencontrée, il mettra à jour les colonnes spécifiées avec les valeurs de l'instruction SELECT.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal