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.