Maison >base de données >tutoriel mysql >Comment effectuer des insertions en masse avec ON DUPLICATE KEY UPDATE dans MySQL ?
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.
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>
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>
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!