Maison > base de données > tutoriel mysql > Comment mettre à jour les lignes existantes lors d'une INSERT à l'aide de ON DUPLICATE KEY UPDATE de MySQL ?

Comment mettre à jour les lignes existantes lors d'une INSERT à l'aide de ON DUPLICATE KEY UPDATE de MySQL ?

Mary-Kate Olsen
Libérer: 2024-11-30 02:30:13
original
592 Les gens l'ont consulté

How to Update Existing Rows During an INSERT Using MySQL's ON DUPLICATE KEY UPDATE?

Utilisation de "INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE"

Lors de l'exécution d'une opération d'insertion avec MySQL, il est possible de mettre à jour les lignes existantes si un conflit de clé unique se produit. Ceci peut être réalisé en utilisant la syntaxe "INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE".

Dans la requête donnée, il est prévu d'insérer des lignes à partir d'une table temporaire ('tmp') dans la table « sous le vent ». Si une ligne avec la même clé unique ("id" dans ce cas) existe déjà dans 'lee', la requête doit mettre à jour des colonnes spécifiques avec les valeurs de la table 'tmp'.

La syntaxe de la mise à jour La clause dans ce scénario est la suivante :

ON DUPLICATE KEY UPDATE column1=SELECT_column1, column2=SELECT_column2, ...
Copier après la connexion

Ici, "column1" fait référence à une colonne de la table 'lee' et "SELECT_column1" fait référence à la colonne correspondante dans la clause SELECT. En spécifiant ces paires, MySQL détermine quelles colonnes mettre à jour avec les nouvelles valeurs de SELECT.

Pour la requête fournie, la clause UPDATE ressemblerait à :

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.emptydur, emptydur=t.emptydur
Copier après la connexion

Cela garantit que le les colonnes "entct", "inact", "inadur", etc., sont mises à jour avec les valeurs des colonnes correspondantes dans la table temporaire lorsqu'une clé en double est rencontrée.

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