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, ...
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
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!