A veces, es posible que deba hacer que la columna sea única en MySQL. Puede hacer esto agregando una restricción de columna ÚNICA en MySQL. Hay un par de formas de agregar restricciones únicas:usando las declaraciones CREATE TABLE o ALTER TABLE. Aquí se explica cómo agregar una restricción única en MySQL.
MySQL Agregar Restricción Única
Aquí se explica cómo agregar una restricción única en MySQL. Puede agregar restricciones únicas cuando crea la tabla o después de haberla creado. Veremos ambos enfoques.
MySQL agrega una restricción única al crear la tabla
Aquí está la instrucción SQL para crear una restricción ÚNICA cuando crea una tabla
CREATE TABLE table_name( ..., column_name data_type UNIQUE, ... )
En la consulta anterior, debe especificar la palabra clave ÚNICA para la definición de la columna que desea que sea única.
Aquí hay un ejemplo para crear una restricción única. En el siguiente ejemplo, hemos agregado una restricción ÚNICA para order_id columna
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 | | +----------+---------+------+-----+---------+-------+
Ahora, si intenta insertar valores duplicados para order_id columna obtendrá un error.
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 | +----------+--------+
Lectura adicional:Columna de cambio de nombre de MySQL
MySQL agrega una restricción única a la columna existente
Aquí está la instrucción SQL para crear una restricción ÚNICA para una columna existente, utilizando la instrucción ALTER TABLE.
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... );
En la consulta SQL anterior, debe especificar un constraint_name para la restricción ÚNICA después de AGREGAR RESTRICCIÓN, y enumere las columnas que desea que sean únicas en ( )
Aquí hay un ejemplo para agregar una restricción única a la columna 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 | | +----------+---------+------+-----+---------+-------+
En la consulta anterior, hemos agregado una restricción única a la columna de cantidad.
Lectura adicional:Cómo duplicar una tabla en MySQL
MySQL Añadir Restricciones Únicas Múltiples Columnas
Aquí está la instrucción SQL para crear una restricción ÚNICA para varias columnas.
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'
Lectura adicional:Procedimiento almacenado de MySQL con parámetros
También puede agregar RESTRICCIÓN ÚNICA a múltiples columnas usando la instrucción ALTER TABLE.
alter table old_orders add constraint unique_orders UNIQUE (order_id,amount);
Ubiq facilita la visualización de datos en minutos y la supervisión en paneles en tiempo real. ¡Pruébalo hoy!