Maison > base de données > tutoriel mysql > Comment effectuer des insertions en masse avec ON DUPLICATE KEY UPDATE dans MySQL ?

Comment effectuer des insertions en masse avec ON DUPLICATE KEY UPDATE dans MySQL ?

Susan Sarandon
Libérer: 2025-01-11 07:14:42
original
714 Les gens l'ont consulté

How to Perform Bulk Inserts with ON DUPLICATE KEY UPDATE in MySQL?

Explication détaillée de l'insertion par lots MySQL et de la MISE À JOUR DE LA CLÉ EN DUPLICATE

Lors de l'insertion de plusieurs lignes de données en même temps dans MySQL, vous devrez peut-être vérifier s'il existe des valeurs en double dans la clé unique et effectuer des opérations de mise à jour ou d'insertion en fonction de la situation.

Pour ce faire, vous pouvez utiliser la clause ON DUPLICATE KEY UPDATE. Cependant, pour les données multilignes, la manière dont cela est implémenté dépend de votre version de MySQL.

MySQL 8.0.19 et supérieur

Pour les versions 8.0.19 et supérieures, vous pouvez utiliser un alias pour identifier les lignes que vous souhaitez mettre à jour :

<code class="language-sql">INSERT INTO beautiful (name, age)
VALUES
  ('Helen', 24),
  ('Katrina', 21),
  ('Samia', 22),
  ('Hui Ling', 25),
  ('Yumie', 29)
AS new
ON DUPLICATE KEY UPDATE
  age = new.age
  ...</code>
Copier après la connexion

MySQL 8.0.19 ou version antérieure

Pour les versions antérieures, vous pouvez utiliser le mot-clé VALUES pour préciser les valeurs de la ligne à mettre à jour :

<code class="language-sql">INSERT INTO beautiful (name, age)
VALUES
  ('Helen', 24),
  ('Katrina', 21),
  ('Samia', 22),
  ('Hui Ling', 25),
  ('Yumie', 29)
ON DUPLICATE KEY UPDATE
  age = VALUES(age),
  ...</code>
Copier après la connexion

Avec la méthode ci-dessus, vous pouvez effectuer des opérations de mise à jour ou d'insertion par lots à l'aide d'une seule requête, garantissant l'intégrité des données, mettant à jour les lignes existantes et en insérant de nouvelles lignes si nécessaire.

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