Especifique restricciones únicas para varias columnas en MySQL

Shraddha Paghdar 20 junio 2023
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 Paghdar avatar Shraddha Paghdar avatar

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

Artículo relacionado - MySQL Column