Oracle/PLSQL: 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.

Oracle/PLSQL: Restricciones únicas

Este tutorial de Oracle describe cómo Crear, eliminar, deshabilitar y habilitar restricciones únicas Sintaxis y ejemplos en Oracle.

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

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.

notas

  • En Oracle, una restricción única no puede contener más de 32 columnas.
  • Las restricciones únicas se pueden definir en la instrucción CREATE TABLE o ALTER TABLE.

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

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.

Oracle no le permite crear una clave principal y una restricción única utilizando la misma columna.

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

La sintaxis para crear una restricción única en Oracle utilizando 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 Oracle usando la instrucción CREATE TABLE.

CREATE TABLE supplier
( supplier_id numeric(10) NOT NULL,
  supplier_name varchar2(50) NOT NULL,
  contact_name varchar2(50),
  CONSTRAINT supplier_unique UNIQUE (supplier_id)
);

En este ejemplo, hemos creado una restricción única en la tabla de proveedores denominada proveedor_único. Contiene un solo campo: el campo id_proveedor.

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

CREATE TABLE supplier
( supplier_id numeric(10) NOT NULL,
  supplier_name varchar2(50) NOT NULL,
  contact_name varchar2(50),
  CONSTRAINT supplier_unique UNIQUE (supplier_id, supplier_name)
);

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

La sintaxis para crear una restricción única en Oracle utilizando 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 Oracle.

ALTER TABLE supplier
ADD CONSTRAINT supplier_unique UNIQUE (supplier_id);

En este ejemplo, hemos creado una restricción única en la tabla de proveedores existente denominada proveedor_único. Consiste en un campo llamado id_proveedor.

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

ALTER TABLE supplier
ADD CONSTRAINT supplier_name_unique UNIQUE (supplier_id, supplier_name);

eliminar restricción única

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

ALTER TABLE table_name
DROP CONSTRAINT 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 Oracle.

ALTER TABLE supplier
DROP CONSTRAINT supplier_unique;

En este ejemplo, eliminaremos la restricción única en la tabla de proveedores, denominada proveedor_único.

Deshabilitar restricciones únicas

La sintaxis para deshabilitar restricciones únicas en Oracle es:

ALTER TABLE table_name
DISABLE CONSTRAINT constraint_name;

table_name El nombre de la tabla a modificar. Esta es la tabla cuya restricción única desea deshabilitar. constreñir_name El nombre de la restricción única a deshabilitar.

ejemplo

Veamos un ejemplo de cómo deshabilitar la restricción única en Oracle.

ALTER TABLE supplier
DISABLE CONSTRAINT supplier_unique;

En este ejemplo, deshabilitamos la restricción única en la tabla de proveedores, denominada proveedor_único.

habilitar restricción única

La sintaxis para habilitar restricciones únicas en Oracle es:

ALTER TABLE table_name
ENABLE CONSTRAINT constraint_name;

table_name El nombre de la tabla a modificar. Esta es la tabla cuya restricción única desea habilitar. constreñir_name El nombre de la restricción única para habilitar.

ejemplo

Veamos un ejemplo de cómo habilitar restricciones únicas en Oracle.

ALTER TABLE supplier
ENABLE CONSTRAINT supplier_unique;

En este ejemplo, hemos habilitado una restricción única en la tabla de proveedores llamada proveedor_único.