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
Libérer: 2024-12-16 02:56:09
original
414 Les gens l'ont consulté

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);
    Copier après la connexion
  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;
    Copier après la connexion

    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!

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