Maison > base de données > tutoriel mysql > Comment insérer ou mettre à jour des lignes dans MySQL à l'aide de INSERT...ON DUPLICATE KEY UPDATE ?

Comment insérer ou mettre à jour des lignes dans MySQL à l'aide de INSERT...ON DUPLICATE KEY UPDATE ?

Mary-Kate Olsen
Libérer: 2025-01-24 02:32:09
original
585 Les gens l'ont consulté

How to Insert or Update Rows in MySQL Using INSERT...ON DUPLICATE KEY UPDATE?

Gestion des conflits de clés en double dans MySQL : INSÉRER... SUR LA MISE À JOUR DE LA CLÉ EN DUPLICATE

Lors de l'insertion de données dans une table MySQL avec une contrainte de clé unique, un conflit survient si une clé en double est rencontrée. L'instruction INSERT...ON DUPLICATE KEY UPDATE résout élégamment ce problème en vous permettant soit d'insérer une nouvelle ligne, soit de mettre à jour une ligne existante en fonction de la clé unique.

Considérons une table avec une colonne 'ID' unique. Si vous essayez d'insérer une ligne avec un identifiant existant, une instruction INSERT standard échouera. Le INSERT...ON DUPLICATE KEY UPDATE apporte une solution.

Exemple de scénario :

Imaginez que vous ajoutez des données à une table users :

INSERT INTO users (ID, Name, Age) VALUES (1, "Bob", 30);

Si un utilisateur avec ID = 1 existe déjà, cette requête échouera.

La solution :

Utiliser INSERT...ON DUPLICATE KEY UPDATE :

INSERT INTO users (ID, Name, Age) VALUES (1, "Bob", 30) ON DUPLICATE KEY UPDATE Name = "Bob", Age = 30;

Explication :

  • La partie INSERT précise les données à insérer.
  • ON DUPLICATE KEY UPDATE dicte l'action de mise à jour si une clé en double est trouvée.
  • Dans cet exemple, si ID = 1 existe, les colonnes Name et Age seront mises à jour avec les valeurs fournies. Si ID = 1 n'existe pas, une nouvelle ligne est insérée.

Cette approche garantit l'intégrité des données tout en évitant les erreurs causées par des insertions de clés en double. C'est un moyen concis et efficace de gérer les mises à jour des données dans MySQL.

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