Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Constraints (Restricciones)
Objetivos
Al n, deber a ser Al completar completar esta esta lecci leccin, debera ser capaz capaz de de hacer hacer lo lo siguiente: siguiente: Describir Describir constraints constraints Crear Crear y y mantener mantener constraints constraints
11-2
Se puede definir un restriccin a nivel de columna o a nivel de tabla. Vea la constraint en el diccionario de datos.
Copyright Oracle Corporation, 1998. All rights reserved.
Definicin de Constraints
CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [column_constraint], [table_constraint]);
CREATE TABLE emp( (empno NUMBER(4), ename VARCHAR2(10), deptno NUMBER(7,2) NOT NULL, CONSTRAINT emp_empno_pk PRIMARY KEY (EMPNO));
11-5
Definicin de Constraints
Constraint Constraint a a nivel nivel de de columna: columna:
column ] , column [CONSTRAINT [CONSTRAINT constraint_name constraint_name ] constraint_type constraint_type ,
11-6
NOT NULL constraint (ningn registro podr contener un valor nulo para esta columna)
11-7
Ausencia de la Constraint NOT NULL constraint NOT NULL (cualquier reg. puede contener un valor nulo para esta columna)
11-8
DEPT
DEPTNO -----10 20 30 40 DNAME ---------ACCOUNTING RESEARCH SALES OPERATIONS LOC -------NEW YORK DALLAS CHICAGO BOSTON
11-9
11-10
DEPT
DEPTNO -----10 20 30 40 DNAME ---------ACCOUNTING RESEARCH SALES OPERATIONS LOC -------NEW YORK DALLAS CHICAGO BOSTON
11-11
11-12
EMP
EMPNO ENAME 7839 KING 7698 BLAKE ... JOB PRESIDENT MANAGER ... COMM DEPTNO 10 30 No permitido (DEPTNO9 no existe en la tabla DEPT Permitido FOREIGN key
MANAGER MANAGER
... ...
200 200
11-14
La Constraint CHECK
Define una condicin que debe satisfacer cada fila. Expresiones no permitidas:
..., deptno NUMBER(2), CONSTRAINT emp_deptno_ck CHECK (DEPTNO BETWEEN 10 AND 99),...
11-16 Copyright Oracle Corporation, 1998. All rights reserved.
Aade Aade o o borra, borra, pero pero no no modifica modifica una una constraint. constraint. Activa-Desactiva Activa-Desactiva constraints. constraints. Aade Aade una una constraint constraint NOT NOT NULL NULL con con la la clusula clusula MODIFY. MODIFY.
11-17
11-18
Borra Borra la la constraint constraint de de PRIMARY PRIMARY KEY KEY de de la la tabla tabla DEPT DEPT y y borra borra la la constraint constraint de de FOREIGN FOREIGN KEY KEY asociada asociada en en la la columna columna EMP.DEPTNO. EMP.DEPTNO.
SQL> dept SQL> ALTER ALTER TABLE TABLE dept 2 2 DROP DROP PRIMARY PRIMARY KEY KEY CASCADE; CASCADE; Table Table altered. altered.
11-19 Copyright Oracle Corporation, 1998. All rights reserved.
Desactivar Constraints
Ejecute Ejecute la la clusula clusula DISABLE DISABLE de de la la sentencia sentencia ALTER ALTER TABLE TABLE para para desactivar desactivar una una constraint constraint de de integridad. integridad. Utilice Utilice la la opcin opcin CASCADE CASCADE para para desactivar desactivar constrains constrains dependientes. dependientes.
SQL> SQL> ALTER ALTER TABLE TABLE 2 2 DISABLE DISABLE CONSTRAINT CONSTRAINT Table Table altered. altered. emp emp emp_empno_pk emp_empno_pk CASCADE; CASCADE;
11-20
Activar Constraints
Active Active una una constraint constraint de de integridad integridad actualmente actualmente desactivada desactivada en en la la definicin definicin de de la la tabla, tabla, por por medio medio de de la la clusula clusula ENABLE. ENABLE.
SQL> SQL> ALTER ALTER TABLE TABLE 2 2 ENABLE ENABLE CONSTRAINT CONSTRAINT Table Table altered. altered. emp emp emp_empno_pk; emp_empno_pk;
Un Un ndice ndice UNIQUE UNIQUE o o de de PRIMARY PRIMARY KEY KEY se se crea crea automticamente automticamente si si activa activa una una constraint constraint tipo tipo UNIQUE UNIQUE o o PRIMARY PRIMARY KEY KEY
11-21 Copyright Oracle Corporation, 1998. All rights reserved.
Visualizacin de Constraints
Consulte Consulte la la tabla tabla USER_CONSTRAINTS USER_CONSTRAINTS para para ver ver todos todos los los nombres nombres y y definiciones definiciones de de constraints. constraints.
SQL> 2 3 4 SELECT constraint_name, constraint_type, search_condition FROM user_constraints WHERE table_name = 'EMP'; C C SEARCH_CONDITION SEARCH_CONDITION - ------------------------------------------------C C EMPNO EMPNO IS IS NOT NOT NULL NULL C C DEPTNO DEPTNO IS IS NOT NOT NULL NULL P P
CONSTRAINT_NAME CONSTRAINT_NAME ----------------------------------------------SYS_C00674 SYS_C00674 SYS_C00675 SYS_C00675 EMP_EMPNO_PK EMP_EMPNO_PK ... ...
11-22
CONSTRAINT_NAME CONSTRAINT_NAME ------------------------------------------------EMP_DEPTNO_FK EMP_DEPTNO_FK EMP_EMPNO_PK EMP_EMPNO_PK EMP_MGR_FK EMP_MGR_FK SYS_C00674 SYS_C00674 SYS_C00675 SYS_C00675
11-23
Resumen
Cree Cree los los siguientes siguientes tipos tipos de de constraints: constraints: NOT NOT NULL NULL
UNIQUE UNIQUE Key Key PRIMARY PRIMARY KEY KEY FOREIGN FOREIGN KEY KEY CHECK CHECK
Consulte Consulte la la tabla tabla USER_CONSTRAINTS USER_CONSTRAINTS para para ver ver todos todos los los nombres nombres y y definiciones definiciones de de constraints. constraints.
11-24 Copyright Oracle Corporation, 1998. All rights reserved.
11-25