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.