Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Vytvorte dve tabuľky v Sqlplus preukázať deferrable obmedzenia takto :
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
Alter tabuľky v Sqlplus pridať cudzí kľúč obmedzenia navzájom takto :
ALTER TABLE Test ADD CONSTRAINT test2REF
FOREIGN KEY ( foreign_ID ) odkazy test2 ( test2_ID )
časovo rozlíšené DEFERRABLE ;
ALTER TABLE ADD CONSTRAINT test2 testREF
FOREIGN KEY ( foreign2_ID ) Odkazy test ( test_ID )
časovo rozlíšené DEFERRABLE ;
3
vkladať záznamy do oboch tabuliek v Sqlplus . To ukazuje , že s deferrable obmedzenia , riadky môžu byť pridané cez cudzí kľúč obmedzenia :
INSERT INTO skúšobných VALUES ( 1 , 2 ) ;
INSERT INTO test2 VALUES ( 2 , 1 ) ;
4
Zaviazať sa informácie na príkaz Sqlplus s :
Commit ,
To bude dokončenie operácie a riadky budú pridané do oboch tabuliek < br . >
5
Ukážte , ako by to zlyhanie opätovným spustením všetkých príkazov v jednej operácii , ale bez odložené obmedzenia . Na príkaz Sqlplus zadajte :
- Prvý pokles tabuľky
DROP TABLE skúšobné obmedzenia CASCADE ;
DROP TABLE test2 CASCADE obmedzenia ,
- . - Teraz zadajte všetky predchádzajúce príkazy , ale bez obmedzenia deferrable takto :
CREATE TABLE Test ( klipart
test_id INTEGER PRIMARY KEY , klipart
foreign_id INTEGER NOT NULL
) ;
CREATE TABLE test2 (
test2_id INTEGER PRIMARY KEY ,
foreign2_id INTEGER NOT NULL
) ;
ALTER TABLE Test ADD CONSTRAINT test2REF
FOREIGN KEY ( foreign_id ) Odkazy test2 ( test2_id ) ;
ALTER TABLE ADD CONSTRAINT test2 testREF klipart
FOREIGN KEY ( foreign2_id ) Odkazy testovacie ( test_id ) ;
INSERT INTO skúšobných VALUES ( 1 , 2 ) ;
INSERT INTO test2 VALUES ( 2 , 1 ) ;
Táto verzia skriptu zlyhá , pretože obmedzenia majú nebola odložená čaká " COMMIT " príkaz .
Copyright © počítačové znalosti Všetky práva vyhradené