Creare due tabelle in sqlplus per dimostrare vincoli differibili come segue : 
 
 CREATE TABLE test ( 
 
test_id INTEGER PRIMARY KEY , Stati
 foreign_id INTEGER NOT NULL) ; 
 
 CREATE TABLE test2 ( 
 
test2_id INTEGER PRIMARY KEY , Stati
 foreign2_id INTEGER NOT NULL 
 
 ) ; 
 
 2 
 Modificare i tavoli in sqlplus per aggiungere vincoli di chiave esterna tra loro come segue : 
 
 ALTER TABLE test aggiungi vincolo test2REF 
 
 FOREIGN KEY ( foreign_ID ) RIFERIMENTI test2 ( test2_ID ) 
 
 INIZIALMENTE DIFFERITA DEFERRABLE ; 
 
 ALTER TABLE ADD CONSTRAINT test2 testREF 
 
FOREIGN KEY ( foreign2_ID ) RIFERIMENTI prova ( test_ID ) per
 INIZIALMENTE DIFFERITA DEFERRABLE ; 
 
 3 
 inserire record in entrambe le tabelle in SQLPlus . Questo dimostra che con un vincolo differibile , le righe possono essere aggiunte , nonostante i vincoli di chiave esterna : 
 
 INSERT INTO test VALUES ( 1 , 2) ; 
 
 INSERT INTO test2 VALUES ( 2 , 1 ) ; 
 4 
 commettere l' informazione al comando sqlplus con : 
 
 Commit ; 
 
 Questo completerà l'operazione e le righe sarà aggiunto per entrambe le tabelle < br . > 
 5 
 Dimostrare come fallirebbe eseguendo tutti i comandi di nuovo in una singola operazione , ma senza il vincolo differito . Al comando sqlplus entrare : 
 
 - prima eliminare le tabelle 
 
 DROP TABLE vincoli CASCADE prova; 
 
 tavolo Goccia test2 vincoli CASCADE ; 
 
 - . - inserire ora tutti i comandi precedenti, ma senza i vincoli differibili come segue : 
 
 CREATE TABLE test ( 
 
test_id INTEGER PRIMARY KEY , Stati
 foreign_id INTEGER NOT NULL 
 
 ) ; 
 
 CREATE TABLE test2 ( 
 
test2_id INTEGER PRIMARY KEY , Stati
 foreign2_id INTEGER NOT NULL 
 
 ) ; 
 
 ALTER TABLE test Aggiungi vincolo test2REF 
 
 FOREIGN KEY ( foreign_id ) RIFERIMENTI test2 ( test2_id ) ; 
 
 ALTER TABLE ADD CONSTRAINT test2 testREF 
 
 FOREIGN KEY ( foreign2_id ) prova RIFERIMENTI ( test_id ) ; 
 
 INSERT INTO test VALUES ( 1 , 2) ; 
 
 INSERT INTO test2 VALUES ( 2 , 1 ) ; 
 
 Questa versione dello script fallirà come i vincoli hanno non è stata rinviata in attesa di un comando "commit" . 
 
              
software © www.354353.com