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.