“Conocimientos software>Software de base de datos

Cómo hacer una restricción Deferrable en Oracle

2015/7/22
Restricciones están diseñados para prevenir accidentes en el manejo de datos y preservar la integridad de los datos . En algunos casos, sin embargo , podría ser necesario aplazar las limitaciones por lo que en realidad no hacen cumplir sus reglas hasta que se cumpla una condición específica. Por ejemplo , es posible aplazar las reglas de una restricción para activar sólo cuando se ha solicitado una " confirmación " . Instrucciones
1

Crear dos tablas en SQLPlus demostrar limitaciones diferibles como sigue:

CREATE TABLE test (

test_id INTEGER PRIMARY KEY ,

foreign_id INTEGER NOT NULL);

CREATE TABLE test2 (

test2_id INTEGER PRIMARY KEY ,

foreign2_id INTEGER NOT NULL

) ;

2

Modificar los cuadros en SQLPlus añadir restricciones de clave externa entre sí de la siguiente manera :

ALTER TABLE test agregar restricción test2REF

FOREIGN KEY ( foreign_ID ) REFERENCIAS test2 ( test2_ID )

inicialmente diferidos DEFERRABLE ;

ALTER TABLE test2 Agregar restricción testref

FOREIGN KEY ( foreign2_ID ) REFERENCIAS prueba ( test_ID )

inicialmente diferidos DEFERRABLE ;

3

insertar registros en ambas tablas en SQLPlus . Esto demuestra que con una restricción prorrogable , las filas se pueden agregar a pesar de las restricciones de clave externa :

INSERT INTO valores de prueba ( 1 , 2 ) ;

INSERT INTO test2 VALUES ( 2 , 1 ) ;
4

Confirmar la información en el símbolo SQLPlus con:

cometer;

Esto completará la operación y se le añadirán las filas en las que ambas tablas < br . > Página 5

Demostrar cómo iba a fallar al ejecutar todos los comandos de nuevo en una sola operación, pero sin la restricción diferida. En el símbolo del SQLPlus escriba:

- Primera caída de las tablas

DROP TABLE prueba limitaciones CASCADE ;

Eliminar tablas test2 limitaciones CASCADE ;

- . - A continuación, introduzca los comandos anteriores, pero sin las limitaciones diferibles de la siguiente manera :

CREATE TABLE test (

test_id INTEGER PRIMARY KEY ,

foreign_id INTEGER NOT NULL
< p> ) ;

CREATE TABLE test2 (

test2_id INTEGER PRIMARY KEY ,

foreign2_id INTEGER NOT NULL

) ;

ALTER TABLE test AÑADIR test2REF RESTRICCIÓN

FOREIGN KEY ( foreign_id ) REFERENCIAS test2 ( test2_id ) ;

ALTER TABLE test2 Agregar restricción testref

FOREIGN KEY ( foreign2_id ) Prueba REFERENCIAS ( test_id ) ;

INSERT INTO valores de prueba ( 1 , 2 ) ;

INSERT INTO test2 VALUES ( 2 , 1 ) ;

Esta versión del script fallará como las restricciones tienen no se aplazó en espera de un comando " commit" .

Software de base de datos
Cómo crear una base de datos Oracle en Windows Manual
Cómo acceder a 2.007 botones personalizados
Informes Access y SQL
Cómo encontrar lo que los usuarios conectados en Access 2007
Cómo instalar Citrix Database Administrator
Cómo utilizar la Declaración de Autorización Alter
Cómo crear una restricción UNIQUE Sin un índice
Las diferencias en OLTP y OLAP
Conocimientos Informáticos © http://www.ordenador.online