Maison > base de données > tutoriel mysql > Comment puis-je obtenir la fonctionnalité de l'instruction MERGE de SQL dans MySQL ?

Comment puis-je obtenir la fonctionnalité de l'instruction MERGE de SQL dans MySQL ?

Mary-Kate Olsen
Libérer: 2024-12-29 21:01:11
original
302 Les gens l'ont consulté

How Can I Achieve the Functionality of SQL's MERGE Statement in MySQL?

L'alternative MySQL à l'instruction MERGE

SQL inclut une instruction de fusion qui permet aux utilisateurs de combiner les opérations INSERT et UPDATE en une seule requête. Cependant, MySQL ne prend pas en charge cette instruction.

Obtenir l'effet de fusion dans MySQL

Malgré l'absence d'instruction MERGE dédiée, MySQL propose une solution alternative :

INSÉRER... SUR LA MISE À JOUR DE LA CLÉ EN DOUBLE

Ceci La syntaxe vous permet d'insérer de nouvelles lignes dans une table tout en mettant à jour les lignes existantes si les valeurs d'un index UNIQUE ou PRIMARY KEY sont déjà présentes. Lorsque la nouvelle ligne provoque une valeur en double, MySQL exécutera les étapes suivantes :

  1. Première vérification : MySQL vérifie d'abord si la ligne existante correspond à la ligne entrante en fonction de l'unique ou clé primaire.
  2. Mettre à jour si vrai : Si une correspondance est trouvée, MySQL met à jour la ligne existante avec les nouvelles valeurs spécifiées dans la MISE À JOUR. clause.
  3. Insérer si faux : Si aucune correspondance n'est trouvée, MySQL insère la nouvelle ligne comme prévu.

Exemple :

INSERT INTO my_table (id, name, age)
VALUES (1, 'John Doe', 35)
ON DUPLICATE KEY UPDATE name = 'Jane Doe', age = 40;
Copier après la connexion

Dans cet exemple, si la ligne avec l'identifiant 1 existe déjà, MySQL mettra à jour le nom en 'Jane Biche' et âge jusqu'à 40 ans. Sinon, il insérera une nouvelle ligne avec les valeurs spécifiées.

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