SQL - Vincolo UNICO

Il vincolo UNIQUE impedisce a due record di avere valori identici in una colonna. Nella tabella CLIENTI, ad esempio, potresti voler impedire a due o più persone di avere la stessa età.

Esempio

Ad esempio, la seguente query SQL crea una nuova tabella denominata CUSTOMERS e aggiunge cinque colonne. Qui, la colonna ETÀ è impostata su UNICO, quindi non puoi avere due record con la stessa età.

CREATE TABLE CUSTOMERS(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL UNIQUE,
   ADDRESS  CHAR (25) ,
   SALARY   DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);

Se la tabella CUSTOMERS è già stata creata, aggiungere un vincolo UNIQUE alla colonna AGE. Dovresti scrivere un'istruzione come la query che viene fornita nel blocco di codice sottostante.

ALTER TABLE CUSTOMERS
   MODIFY AGE INT NOT NULL UNIQUE;

È inoltre possibile utilizzare la seguente sintassi, che supporta anche la denominazione del vincolo in più colonne.

ALTER TABLE CUSTOMERS
   ADD CONSTRAINT myUniqueConstraint UNIQUE(AGE, SALARY);

ELIMINA un vincolo UNICO

Per eliminare un vincolo UNIQUE, utilizzare la seguente query SQL.

ALTER TABLE CUSTOMERS
   DROP CONSTRAINT myUniqueConstraint;

Se stai usando MySQL, puoi usare la seguente sintassi:

ALTER TABLE CUSTOMERS
   DROP INDEX myUniqueConstraint;
sql-rdbms-concepts.htm