Problème :
Vous souhaitez rendre unique une colonne donnée dans une table donnée d'une base de données.
Exemple :
Nous voudrions faire de la colonne name
unique dans le tableau product
. La requête ci-dessous présente une façon de procéder.
Solution 1
CREATE TABLE product ( id INT NOT NULL PRIMARY KEY, name VARCHAR(100) UNIQUE, producer VARCHAR(100), category VARCHAR(100) );
Discussion :
Dans cet exemple une colonne donnée (la colonne name
) a été rendu unique en ajoutant la clause UNIQUE à la fin de la colonne de définition (name VARCHAR(100) UNIQUE
). Cette nouvelle table (dans notre exemple :product
) contiendra la colonne (dans notre exemple :name
) qui stocke des valeurs uniques dans des lignes.
Solution 2 :
ALTER TABLE product ADD CONSTRAINT UQ_product_name UNIQUE(name);
Discussion :
Dans cet exemple, la table product
existe déjà. Nous voulons modifier cette table et ajouter une contrainte unique à la colonne name
. Ceci est possible en utilisant le ALTER TABLE
clause. Nous écrivons d'abord ALTER TABLE, puis nous listons le nom de la table (dans notre exemple :product
), et ensuite nous ajoutons la clause ADD CONSTRAINT
avec le nom de la contrainte unique (dans notre exemple :UQ_product_name
). Il est suivi du mot-clé UNIQUE avec colonne/colonnes (dans notre exemple, il s'agit de la colonne :name
) entre parenthèses.
Vous pouvez également créer une contrainte unique à plusieurs colonnes. Voici comment :
Solution 3 :
ALTER TABLE product ADD CONSTRAINT UQ_product_name_producer UNIQUE(name, producer);
Discussion :
Dans cet exemple, le produit de la table est modifié à l'aide de ALTER TABLE
clause et la clause ADD CONSTRAINT avec le nom de la contrainte unique (dans notre exemple :UQ_product_name_producer
) suivi du UNIQUE
mot clé avec la liste des colonnes (dans notre exemple il y a deux colonnes :name
et producer
) entre parenthèses.