Problema:
Você gostaria de tornar uma determinada coluna exclusiva em uma determinada tabela em um banco de dados.
Exemplo:
Gostaríamos de tornar a coluna
name
exclusivo na tabela product
. A consulta abaixo apresenta uma maneira de fazer isso. Solução 1
CREATE TABLE product ( id INT NOT NULL PRIMARY KEY, name VARCHAR(100) UNIQUE, producer VARCHAR(100), category VARCHAR(100) );
Discussão:
Neste exemplo, uma determinada coluna (a coluna
name
) tornou-se único adicionando a cláusula UNIQUE no final da coluna de definição (name VARCHAR(100) UNIQUE
). Esta nova tabela (em nosso exemplo:product
) conterá a coluna (no nosso exemplo:name
) que armazena valores exclusivos em linhas. Solução 2:
ALTER TABLE product ADD CONSTRAINT UQ_product_name UNIQUE(name);
Discussão:
Neste exemplo, a tabela
product
já existe. Queremos modificar esta tabela e adicionar uma restrição exclusiva à coluna name
. Isso é possível usando o ALTER TABLE
cláusula. Primeiro escrevemos ALTER TABLE, depois listamos o nome da tabela (no nosso exemplo:product
), e em seguida adicionamos a cláusula ADD CONSTRAINT
com o nome da restrição exclusiva (no nosso exemplo:UQ_product_name
). Isto é seguido pela palavra-chave UNIQUE com coluna/colunas (no nosso exemplo é coluna:name
) em parênteses. Você também pode criar uma restrição exclusiva de várias colunas. Veja como:
Solução 3:
ALTER TABLE product ADD CONSTRAINT UQ_product_name_producer UNIQUE(name, producer);
Discussão:
Neste exemplo, o produto da tabela é alterado usando o
ALTER TABLE
cláusula e a cláusula ADD CONSTRAINT com o nome da restrição exclusiva (no nosso exemplo:UQ_product_name_producer
) seguido pelo UNIQUE
palavra-chave com a lista de colunas (no nosso exemplo existem duas colunas:name
e producer
) em parênteses.