Maison >base de données >tutoriel mysql >Comment utiliser des clés composites avec la « UPDATE ON DUPLICATE KEY » de MySQL ?

Comment utiliser des clés composites avec la « UPDATE ON DUPLICATE KEY » de MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-16 02:56:09415parcourir

How to Use Composite Keys with MySQL's `UPDATE ON DUPLICATE KEY`?

Clé composite pour la « MISE À JOUR SUR LA CLÉ EN DUPLICATE » de MySQL

Question :
Comment pouvez-vous effectuer efficacement une requête qui met à jour une ligne si une combinaison spécifique de valeurs existe déjà (en utilisant 'UPDATE ON DUPLICATE KEY'), mais seulement si une clé unique est définie ?

Réponse :
MySQL permet la création de clés composites, constituées de plusieurs colonnes. En définissant une clé composite, vous pouvez utiliser la syntaxe 'UPDATE ON DUPLICATE KEY' même lorsque la contrainte unique implique une combinaison de valeurs.

Implémentation :

  1. Créer un index composite :
    Utilisez la syntaxe suivante pour créer un index sur plusieurs colonnes :

    CREATE INDEX index_name ON table_name (column1, column2);
  2. Insérer ou mettre à jour :
    Une fois l'index composite créé, vous pouvez utiliser la requête suivante pour insérer une nouvelle ligne ou mettre à jour un existant basé sur la clé composite :

    INSERT INTO table_name (column1, column2) VALUES (value1, value2) ON DUPLICATE KEY UPDATE column3 = column3 + 1;

    Dans cet exemple, les valeurs 'column1' et 'column2' agir comme la clé composite. Si une ligne avec les mêmes valeurs « colonne1 » et « colonne2 » existe déjà, la valeur « colonne3 » sera incrémentée de un. Sinon, une nouvelle ligne sera insérée.

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