Mostrando entradas con la etiqueta Restricion oracle. Mostrar todas las entradas
Mostrando entradas con la etiqueta Restricion oracle. Mostrar todas las entradas

¿Como crear una condición SQL Unique constraint?



El Unique constraint es una sentencia SQL que evita el ingreso de valores duplicados por columna en una tabla, esto permite restringir los datos que se van a almacenar ya que no acepta valores repetidos, es decir que si tenemos una tabla PAIS con una columna NOMBRE_PAIS y la columna respectivamente tiene valores como “México”,  “Chile”, ”Colombia”, ”Panamá”, ”Uruguay”, si quisiéramos agregar “México” no podremos porque se activara la validación del campo unique.

Creando la tabla

CREATE TABLE CIUDAD (
       CODIGO_CIUDAD NUMBER,
       CODIGO_PAIS     NUMBER,
       NOMBRE_CIUDAD  VARCHAR2(100),
       CONSTRAINT  UNI_NOM_CIUDAD UNIQUE (NOMBRE_CIUDAD)
);

Modificando la tabla

ALTER TABLE CIUDAD ADD CONSTRAINT UNI_NOM_CIUDAD UNIQUE (NOMBRE_CIUDAD);

Se pueden crear unique múltiples,  agregando más campos al unique así: UNIQUE(NOMBRE_CIUDAD, CODIGO_PAIS,…) Esto permitirá crear campos que son unique por registro, aquí lo que se hace es evaluar las columnas por cada registro y si se encuentra  que las columnas NOMBRE_CIUDAD y CODIGO_PAIS, ya contienen esos valores no permitirá ingresar estos nuevos valores.
Cuando se ingresa un valor duplicado en la Columna con la restricción unique, se produce el error:

 

El null no cuenta como un valor por lo tanto el campo con la restricion unique puede almacenar tantos null como sean necesarios.

¿Como crear una condición Constraint Oracle Primary Key o Llave Primaria?


Es una restricción que le permite a una tabla identificar un campo como único, la llave primaria evita que se duplique el valor de ese campo en otros registros de la tabla.

La instrucción para asignarle a una tabla el constraint primary key se puede ejecutar al momento de crear la tabla o realizando una modificación a la misma con el comando el alter table.


Creando la tabla
CREATE TABLE PAIS (
       CODIGO_PAIS NUMBER PRIMARY KEY,
       NOMBRE_PAIS VARCHAR2(100),
       CAPITAL VARCHAR2(100)
);
CREATE TABLE PAIS (
       CODIGO_PAIS NUMBER,
       NOMBRE_PAIS VARCHAR2(100),
       CAPITAL VARCHAR2(100),
       PRIMARY KEY (CODIGO_PAIS));


Modificando la tabla
ALTER TABLE PAIS ADD CONSTRAINT PK_PAIS PRIMARY KEY(CODIGO_PAIS);

Ejemplo valido

Ejemplo no valido
CODIGO_PAIS
NOMBRE_PAIS
CAPITAL

CODIGO_PAIS
NOMBRE_PAIS
CAPITAL
1
COLOMBIA
BOGOTÁ

1
COLOMBIA
BOGOTÁ
2
CHILE
SANTIAGO

3
CHILE
SANTIAGO
3
BOLIVIA
SUCRE

3
BOLIVIA
SUCRE
 
Si intentamos ingresar un registro y el valor del campo CODIGO_PAIS ya existe se generara un error  “ORA-00001: unique constraint primary key violated”. 

En una tabla solo puede existir una llave primaria, por lo general se utiliza la llave primaria en un consecutivo o en un campo de identificación numérico preferiblemente.