Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako si vyrobiť Väzba Deferrable v Oracle

Obmedzenia sú navrhnuté tak , aby sa zabránilo nehodám pri nakladaní s údajmi a pre zachovanie integrity dát . V niektorých prípadoch však môže byť potrebné odložiť obmedzenia tak , aby sa v skutočnosti vynucovaní ich pravidiel , kým nie je splnená podmienka zvláštne . Napríklad , to je možné odložiť pravidlá a obmedzenia aktivovať len vtedy , keď " commit " bolo požiadané . Pokyny dovolená 1

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 .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené