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.