SQL - Restrição UNIQUE

A restrição UNIQUE impede que dois registros tenham valores idênticos em uma coluna. Na tabela CLIENTES, por exemplo, você pode querer evitar que duas ou mais pessoas tenham a mesma idade.

Exemplo

Por exemplo, a consulta SQL a seguir cria uma nova tabela chamada CUSTOMERS e adiciona cinco colunas. Aqui, a coluna AGE é definida como UNIQUE, de forma que você não pode ter dois registros com a mesma idade.

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 a tabela CUSTOMERS já tiver sido criada, adicione uma restrição UNIQUE à coluna AGE. Você escreveria uma instrução como a consulta fornecida no bloco de código abaixo.

ALTER TABLE CUSTOMERS
   MODIFY AGE INT NOT NULL UNIQUE;

Você também pode usar a sintaxe a seguir, que também oferece suporte à nomenclatura da restrição em várias colunas.

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

DROP a UNIQUE Constraint

Para eliminar uma restrição UNIQUE, use a seguinte consulta SQL.

ALTER TABLE CUSTOMERS
   DROP CONSTRAINT myUniqueConstraint;

Se estiver usando MySQL, você pode usar a seguinte sintaxe -

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