Especifique restricciones únicas para varias columnas en MySQL
La publicación de hoy analizará los métodos para especificar restricciones únicas para varias columnas en MySQL.
Especifique restricciones únicas para varias columnas en MySQL
Ocasionalmente, puede desear garantizar que cada valor en una columna o una colección de columnas sea distinto.
Por ejemplo, las direcciones de correo electrónico de los usuarios en la base de datos de los empleados o los números de teléfono de los clientes en la tabla de clientes deben diferir. Se utiliza una restricción única para hacer cumplir esta regla.
Una restricción de integridad llamada ÚNICA
asegura que cada valor en una columna o combinación de columnas sea distinto. Una restricción de tabla o una restricción de columna pueden ser restricciones únicas.
Sintaxis:
CREATE TABLE table_name(
column_name data_type UNIQUE,
);
En la sintaxis anterior, la especificación de columna para la que desea imponer la regla de unicidad incluye la palabra clave ÚNICO
. MySQL rechaza la modificación y genera un error si inserta o actualiza un valor que da como resultado una duplicación en el nombre de la columna.
Las restricciones de columna se utilizan en esta restricción ÚNICA
. Además, se puede usar para hacer cumplir la regla única para una sola columna.
La siguiente sintaxis se utiliza para establecer una restricción ÚNICA
para dos o más columnas:
Sintaxis:
CREATE TABLE table_name(
column_name1 data_type,
column_name2 data_type,
UNIQUE(column_name1,column_name2)
);
El comando MySQL ALTER TABLE
se puede usar para agregar, modificar o eliminar/eliminar columnas de una tabla. El comando AGREGAR ÚNICO
puede agregar una restricción única si la columna ya existe sin una.
Utilice la siguiente sintaxis para crear una restricción única para dos o más columnas.
Sintaxis:
ALTER TABLE table_name ADD UNIQUE column_name;
ALTER TABLE table_name ADD UNIQUE `index_name`(column_name1, column_name2);
Para entender mejor el concepto anterior, considere el siguiente ejemplo:
CREATE TABLE Employees(
email varchar(255) UNIQUE,
first_Name VARCHAR(255),
last_Name VARCHAR(255)
);
CREATE TABLE EmployeeDepartment(
email varchar(255),
department varchar(255),
UNIQUE(email,department)
);
-- If the Employees table does not have a unique email constraint
ALTER TABLE EmployeeDepartment ADD UNIQUE email;
-- If the EmployeeDepartment table does not have a unique constraint
ALTER TABLE EmployeeDepartment ADD UNIQUE `unique_department_emp`(email,department);
En el primer ejemplo anterior, creamos una base de datos llamada Empleados
con los atributos email
, first_Name
y last_Name
. Si cambia o edita un valor que duplica datos en la columna email
, se generará un error.
Designaremos un correo electrónico como una columna única utilizando la palabra clave ÚNICO
.
Al igual que la primera, creamos una tabla EmployeeDepartment
que contiene las variables email
y department.
. Se generará un error si inserta o cambia un valor que duplica datos en la columna email+departamento
.
Usaremos la palabra clave ÚNICO
para hacer de la combinación de correo electrónico
y departamento
una columna única.
Puede modificar una tabla existente agregando de manera similar una nueva restricción única.
Ejecute la línea de código anterior en cualquier navegador compatible con MySQL. Mostrará el siguiente resultado:
Query executed successfully.
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn