Maison >base de données >tutoriel mysql >Comment utiliser la MISE À JOUR DE CLÉ EN DUPLICATE de MySQL pour plusieurs lignes ?

Comment utiliser la MISE À JOUR DE CLÉ EN DUPLICATE de MySQL pour plusieurs lignes ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-11 08:14:42520parcourir

How to Use MySQL's ON DUPLICATE KEY UPDATE for Multiple Rows?

Gérer efficacement plusieurs lignes avec la mise à jour de la clé en double de MySQL

MySQL offre une approche simplifiée pour gérer les insertions de plusieurs lignes tout en vérifiant et en mettant à jour simultanément les valeurs uniques existantes. Ceci est accompli en utilisant la clause ON DUPLICATE KEY UPDATE. Cette fonctionnalité permet des mises à jour conditionnelles ou des insertions de champs spécifiques au sein d'une seule requête.

Pour mettre à jour de manière sélective les lignes existantes et en ajouter de nouvelles, utilisez un alias ou le mot-clé VALUES en conjonction avec ON DUPLICATE KEY UPDATE.

MySQL 8.0.19 et versions ultérieures (utilisation d'un alias) :

<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>

MySQL 8.0.19 et versions antérieures (utilisation du mot-clé VALUES) :

<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>

Ces exemples montrent comment mettre à jour ou insérer des données en fonction de clés uniques existantes. Si une clé unique existe déjà, les champs spécifiés sont mis à jour ; sinon, une nouvelle ligne est insérée. Le mot-clé VALUES ou l'alias new fait référence aux valeurs insérées dans l'instruction INSERT.

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