Maison >base de données >tutoriel mysql >Comment appliquer des contraintes uniques sur plusieurs colonnes dans MySQL ?

Comment appliquer des contraintes uniques sur plusieurs colonnes dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-16 16:37:10388parcourir

How to Enforce Unique Constraints Across Multiple Columns in MySQL?

Spécification de contraintes uniques pour plusieurs colonnes MySQL

Dans le contexte de la gestion de bases de données MySQL, la contrainte unique d'une table garantit qu'aucune ligne ne contient des éléments identiques valeurs pour un ensemble spécifié de colonnes. Pour appliquer une telle contrainte, nous utilisons les commandes ALTER TABLE et ADD UNIQUE conjointement.

Synopsis :

ALTER TABLE <table_name> ADD UNIQUE <index_name>(<column1>, <column2>, ...)

Exemple :

Considérez le tableau suivant schéma :

table votes (
    id,
    user,
    email,
    address,
    primary key(id),
);

Pour garantir que la combinaison des colonnes utilisateur, e-mail et adresse est unique, nous pouvons exécuter la commande suivante :

ALTER TABLE `votes` ADD UNIQUE `unique_index`(`user`, `email`, `address`);

Explication :

  • L'instruction ALTER TABLE modifie le schéma de la table en ajoutant un contrainte.
  • La clause ADD UNIQUE spécifie que les colonnes spécifiées (utilisateur, e-mail, adresse) doivent avoir des valeurs uniques sur toutes les lignes.
  • L'index_unique est un nom personnalisé attribué à l'index.

En implémentant cette contrainte, MySQL garantit qu'il ne peut pas y avoir plusieurs lignes avec des combinaisons identiques d'utilisateur, d'e-mail et d'adresse, évitant ainsi les doublons. entrées.

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