Database
 sql >> Base de données >  >> RDS >> Database

Comment rendre une colonne unique en SQL ?

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.