SQL - Contrainte UNIQUE

La contrainte UNIQUE empêche deux enregistrements d'avoir des valeurs identiques dans une colonne. Dans le tableau CUSTOMERS, par exemple, vous souhaiterez peut-être empêcher deux personnes ou plus d'avoir le même âge.

Exemple

Par exemple, la requête SQL suivante crée une nouvelle table appelée CUSTOMERS et ajoute cinq colonnes. Ici, la colonne AGE est définie sur UNIQUE, de sorte que vous ne pouvez pas avoir deux enregistrements avec le même âge.

CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL UNIQUE,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);

Si la table CUSTOMERS a déjà été créée, ajoutez une contrainte UNIQUE à la colonne AGE. Vous écririez une instruction comme la requête qui est donnée dans le bloc de code ci-dessous.

ALTER TABLE CUSTOMERS
   MODIFY AGE INT NOT NULL UNIQUE;

Vous pouvez également utiliser la syntaxe suivante, qui prend également en charge l'attribution d'un nom à la contrainte dans plusieurs colonnes.

ALTER TABLE CUSTOMERS
   ADD CONSTRAINT myUniqueConstraint UNIQUE(AGE, SALARY);

SUPPRIMER une contrainte UNIQUE

Pour supprimer une contrainte UNIQUE, utilisez la requête SQL suivante.

ALTER TABLE CUSTOMERS
   DROP CONSTRAINT myUniqueConstraint;

Si vous utilisez MySQL, vous pouvez utiliser la syntaxe suivante -

ALTER TABLE CUSTOMERS
   DROP INDEX myUniqueConstraint;
sql-rdbms-concepts.htm