10. Valores únicos

Escrito por Uianes Luiz Rockenbach Biondo.
Última atualização em 04 out. 2023

Existem momentos em que é necessário que um valor, de determinada coluna, nunca seja repetido, como uma chave primária, um número de documento ou um endereço de e-mail, entre outras possibilidades. A instrução PRIMARY KEY faz isso automaticamente com a coluna em que é adicionada. Nas demais colunas, é possível utilizar uma restrição de valor único, chamada de UNIQUE. Para adicionar essa restrição utilizamos a seguinte sintaxe:

CREATE TABLE nomeTabela(
id INT(4) NOT NULL,
atributo VARCHAR(100) NOT NULL,
PRIMARY KEY (id),
UNIQUE (atributo)
);

Para adicionar a restrição em vários atributos utilizamos a seguinte sintaxe:

CREATE TABLE nomeTabela(
id INT(4) NOT NULL,
atributo1 VARCHAR(100) NOT NULL,
atributo2 VARCHAR(100) NOT NULL,
PRIMARY KEY (id),
CONSTRAINT uniqueNome UNIQUE (atributo1, atributo2)
);

E para adicionar uma restrição em uma tabela já existe:

ALTER TABLE nomeTabela
ADD UNIQUE (atributo);

E para adicionar várias restrições em uma tabela já existe:

ALTER TABLE nomeTabela
ADD CONSTRAINT uniqueNome UNIQUE (atributo1, atributo2);

Para apagar a restrição de único é necessário que a restrição seja declarada através de CONSTRAINT com nome próprio, mesmo que seja somente para um atributo.
Exemplo de criação:

ALTER TABLE nomeTabela
ADD CONSTRAINT uniqueNome UNIQUE (atributo);

E para apagar:

ALTER TABLE nomeTabela
DROP INDEX uniqueNome;