10. Valores únicos
Ú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;