MySQL: restricciones únicas

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

MySQL: restricciones únicas

Este tutorial de MySQL explica cómo Crear, agregar y eliminar restricciones únicas Sintaxis y ejemplos en MySQL.

¿Cuál es la restricción única en MySQL?

Una restricción única es un campo único o una combinación de campos que define un registro de forma única. Algunos campos pueden contener valores nulos siempre que la combinación de valores sea única.

¿Cuál es la diferencia entre una restricción única y una clave principal?

Clave primaria restricción única
Todos los campos que pertenecen a la clave principal no pueden contener valores nulos. Algunos campos que forman parte de una restricción única pueden contener valores nulos siempre que la combinación de valores sea única.

Crear un contrato único – Usando la instrucción CREATE TABLE

La sintaxis para crear una restricción única en MySQL usando la instrucción CREATE TABLE es:

CREATE TABLE table_name
(
  column1 datatype [ NULL | NOT NULL ],
  column2 datatype [ NULL | NOT NULL ],
  ...

  CONSTRAINT constraint_name UNIQUE (uc_col1, uc_col2, ... uc_col_n)
);

table_name El nombre de la tabla que desea crear. column1, column2 Las columnas que desea crear en la tabla. constrict_name El nombre de la restricción única. uc_col1, uc_col2, … uc_col_n Las columnas que componen la restricción única.

ejemplo

Veamos un ejemplo de cómo crear una restricción única en MySQL usando la instrucción CREATE TABLE.

CREATE TABLE contacts
( contact_id INT(11) PRIMARY KEY AUTO_INCREMENT,
reference_number INT(11) NOT NULL,
last_name VARCHAR(30) NOT NULL,
first_name VARCHAR(25),
birthday DATE,
CONSTRAINT contacts_unique UNIQUE (contact_id)
);

En este ejemplo, creamos una restricción única en la tabla de contactos denominada contactos_únicos. Contiene un solo campo: el campo número_referencia.

También podemos crear una restricción única con múltiples campos, como en el siguiente ejemplo:

CREATE TABLE contacts
( contact_id INT(11) PRIMARY KEY AUTO_INCREMENT,
reference_number INT(11) NOT NULL,
last_name VARCHAR(30) NOT NULL,
first_name VARCHAR(25),
birthday DATE,
CONSTRAINT contacts_unique UNIQUE (last_name, first_name)
);

CREAR RESTRICCIÓN ÚNICA – UTILIZANDO LA DECLARACIÓN ALTER TABLE

La sintaxis para crear una restricción única en MySQL usando la instrucción ALTER TABLE es:

ALTER TABLE table_name
ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... column_n);

table_name El nombre de la tabla a modificar. Esta es la tabla donde desea agregar una restricción única. constrict_name El nombre de la restricción única. column1, column2, … column_n constituyen las columnas de la restricción única.

ejemplo

Veamos un ejemplo de cómo usar la declaración ALTER TABLE para agregar una restricción única a una tabla existente en MySQL.

ALTER TABLE contacts
ADD CONSTRAINT contacts_unique UNIQUE (reference_number);

En este ejemplo, creamos una restricción única llamada contactos_únicos en la tabla de contactos existente. Consiste en un campo llamado número_referencia.

También podemos crear una restricción única con múltiples campos, como en el siguiente ejemplo:

ALTER TABLE contacts
ADD CONSTRAINT contact_name_unique UNIQUE (last_name, first_name);

eliminar restricción única

La sintaxis para descartar una restricción única en MySQL es:

ALTER TABLE table_name
DROP INDEX constraint_name;

table_name El nombre de la tabla a modificar. Esta es la tabla de la que desea eliminar la restricción única. constrict_name El nombre de la restricción única que se va a eliminar.

ejemplo

Veamos un ejemplo de cómo eliminar una restricción única de una tabla en MySQL.

ALTER TABLE contacts
DROP INDEX contacts_unique;

En este ejemplo, eliminaremos la restricción única en la tabla de contactos llamada contactos_únicos.