Database
 sql >> Base de Dados >  >> RDS >> Database

Como tornar uma coluna única no SQL?

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.