Database
 sql >> Database >  >> RDS >> Database

Come rendere unica una colonna in SQL?

Problema:

Vorresti rendere unica una determinata colonna in una determinata tabella in un database.

Esempio:

Vorremmo creare la colonna name univoco nella tabella product . La query seguente presenta un modo per farlo.

Soluzione 1

CREATE TABLE product (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(100) UNIQUE, 
producer VARCHAR(100), 
category VARCHAR(100)
);

Discussione:

In questo esempio una determinata colonna (la colonna name ) è stato reso univoco aggiungendo la clausola UNIQUE alla fine della colonna della definizione (name VARCHAR(100) UNIQUE ). Questa nuova tabella (nel nostro esempio:product ) conterrà la colonna (nel nostro esempio:name ) che memorizza i valori univoci nelle righe.

Soluzione 2:

ALTER TABLE product 
ADD CONSTRAINT UQ_product_name UNIQUE(name);

Discussione:

In questo esempio la tabella product esiste già. Vogliamo modificare questa tabella e aggiungere un vincolo univoco alla colonna name . Ciò è possibile utilizzando ALTER TABLE clausola. Per prima cosa scriviamo ALTER TABLE, quindi elenchiamo il nome della tabella (nel nostro esempio:product ), e poi aggiungiamo la clausola ADD CONSTRAINT con il nome del vincolo univoco (nel nostro esempio:UQ_product_name ). Questa è seguita dalla parola chiave UNIQUE con colonna/colonne (nel nostro esempio è la colonna:name ) tra parentesi.

Puoi anche creare un vincolo univoco a più colonne. Ecco come:

Soluzione 3:

ALTER TABLE product 
ADD CONSTRAINT UQ_product_name_producer UNIQUE(name, producer);

Discussione:

In questo esempio il prodotto della tabella viene modificato utilizzando ALTER TABLE clausola e la clausola ADD CONSTRAINT con il nome del vincolo univoco (nel nostro esempio:UQ_product_name_producer ) seguito da UNIQUE parola chiave con l'elenco delle colonne (nel nostro esempio ci sono due colonne:name e producer ) tra parentesi.