Às vezes, você pode precisar tornar a coluna exclusiva no MySQL. Você pode fazer isso adicionando uma restrição de coluna UNIQUE no MySQL. Existem algumas maneiras de adicionar restrições exclusivas – usando instruções CREATE TABLE ou ALTER TABLE. Veja como adicionar restrição exclusiva no MySQL.
Adicionar restrição exclusiva do MySQL
Veja como adicionar restrição exclusiva no MySQL. Você pode adicionar a restrição Unique ao criar a tabela ou depois de criar a tabela. Veremos essas duas abordagens.
MySQL adiciona restrição exclusiva ao criar tabela
Aqui está a instrução SQL para criar a restrição UNIQUE ao criar a tabela
CREATE TABLE table_name( ..., column_name data_type UNIQUE, ... )
Na consulta acima, você precisa especificar a palavra-chave UNIQUE para a definição da coluna que deseja que seja exclusiva.
Aqui está um exemplo para criar uma restrição exclusiva. No exemplo a seguir, adicionamos a restrição UNIQUE para order_id coluna
mysql> create table recent_orders ( order_id int UNIQUE, amount int ); mysql> describe recent_orders; +----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------+------+-----+---------+-------+ | order_id | int(11) | YES | UNI | NULL | | | amount | int(11) | YES | | NULL | | +----------+---------+------+-----+---------+-------+
Agora, se você tentar inserir valores duplicados para order_id coluna, você receberá um erro.
mysql> insert into recent_orders(order_id, amount) values(1, 100),(1,250); ERROR 1062 (23000): Duplicate entry '1' for key 'order_id' mysql> insert into recent_orders(order_id, amount) values(1, 100),(2,250); mysql> select * from recent_orders; +----------+--------+ | order_id | amount | +----------+--------+ | 1 | 100 | | 2 | 250 | +----------+--------+
Bônus de leitura:MySQL Renomear coluna
MySQL adiciona restrição exclusiva à coluna existente
Aqui está a instrução SQL para criar uma restrição UNIQUE para uma coluna existente, usando a instrução ALTER TABLE.
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... );
Na consulta SQL acima, você precisa especificar um constraint_name para restrição UNIQUE após ADD CONSTRAINT e liste as colunas nas quais você deseja que sejam exclusivas ( )
Aqui está um exemplo para adicionar restrição exclusiva à coluna existente
mysql> alter table recent_orders add constraint unique_amount UNIQUE (amount); mysql> describe recent_orders; +----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------+------+-----+---------+-------+ | order_id | int(11) | YES | UNI | NULL | | | amount | int(11) | YES | UNI | NULL | | +----------+---------+------+-----+---------+-------+
Na consulta acima, adicionamos uma restrição exclusiva à coluna de valor.
Bônus de leitura:Como duplicar a tabela no MySQL
MySQL adiciona várias colunas de restrição exclusiva
Aqui está a instrução SQL para criar uma restrição UNIQUE para várias colunas.
mysql> create table old_orders ( order_id int, amount int, CONSTRAINT u_orders UNIQUE (order_id,amount) ); mysql> describe old_orders; +----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------+------+-----+---------+-------+ | order_id | int(11) | YES | MUL | NULL | | | amount | int(11) | YES | | NULL | | +----------+---------+------+-----+---------+-------+ mysql> insert into old_orders(order_id, amount) values(1, 100),(1,100); ERROR 1062 (23000): Duplicate entry '1-100' for key 'u_orders'
Bônus de leitura:procedimento armazenado do MySQL com parâmetros
Você também pode adicionar UNIQUE CONSTRAINT a várias colunas usando a instrução ALTER TABLE.
alter table old_orders add constraint unique_orders UNIQUE (order_id,amount);
A Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!