Maison >base de données >tutoriel mysql >MySQL propose-t-il un équivalent d'instruction MERGE ?

MySQL propose-t-il un équivalent d'instruction MERGE ?

DDD
DDDoriginal
2024-12-30 07:13:09502parcourir

Does MySQL Offer a MERGE Statement Equivalent?

MySQL peut-il utiliser l'instruction MERGE ?

Il est souvent souhaitable d'incorporer les opérations INSERT et UPDATE dans une seule requête. De nombreuses bases de données SQL proposent une instruction MERGE à cet effet. Cependant, MySQL prend-il en charge une telle instruction ?

MySQL et l'instruction MERGE

MySQL ne prend pas explicitement en charge l'instruction MERGE. Cependant, il fournit une alternative qui permet d'obtenir une fonctionnalité similaire : INSERT...ON DUPLICATE KEY UPDATE.

Syntaxe et utilisation

INSERT...ON DUPLICATE KEY L'instruction UPDATE vous permet d'insérer une nouvelle ligne dans une table, et si une ligne avec la même clé primaire ou unique existe déjà, elle mettra à jour la ligne existante avec la nouvelle valeurs.

La syntaxe est la suivante :

INSERT INTO table (column1, column2, ...)
VALUES (value1, value2, ...)
ON DUPLICATE KEY UPDATE
  column1 = new_value1,
  column2 = new_value2,
  ...

Exemple

Pour illustrer son utilisation, considérons l'exemple suivant :

INSERT INTO Employees (id, name, salary)
VALUES (1, 'John Doe', 50000)
ON DUPLICATE KEY UPDATE
  salary = salary + 10000;

Si un employé avec l'ID 1 existe déjà dans la table Employés, cette relevé mettra à jour son salaire en ajoutant 10000. Sinon, il insérera une nouvelle ligne pour John Doe avec un salaire de 50 000.

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!

Déclaration:
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