2014-01-11 20 views
0

我創建數據庫。我有連接的桌子。Oracle - 在兩個表之間如何在插入後使用觸發器?

:id_book,標題,作者,...,子公司(外鍵表附屬公司)

借款:id_borr,遊客......書(外鍵表書)

子公司:id_subs,城市,能力,...

現在我有:

create table subsidiary 
(
    id_subs    smallint      primary key, 
    city     varchar(50), 
    capacity    integer 
); 

create table book 
(
    id_book    integer      primary key, 
    title    varchar(1000), 
    author    varchar(100), 
    subsidiary   smallint      null, 
    FOREIGN KEY (subsidiary) REFERENCES subsidiary(id_subs) 
); 

create table borrowing 
(
    id_borr    integer      primary key, 
    book     integer      null, 
    visitor    varchar(100), 
    FOREIGN KEY (book) REFERENCES book(id_book) 
); 

我想樣的行爲:書已經得到了子公司。但是借用(某本書的)插入後,書籍更改爲NULL。

我發現只有這個例子(和類似的):http://www.techonthenet.com/oracle/triggers/after_insert.php,但我不確定。

非常感謝你。

+0

你的意思是說,當一個新行被插入借用時,book表中的子表將被設置爲null,我是否正確?如果是這樣,你期望在附屬表上做什麼操作? – San

+0

你是對的,沒有附屬表。謝謝。 –

回答

1

假設您不想在輔助表上進行任何操作,可以按如下方式編寫觸發器。

CREATE OR REPLACE TRIGGER trg_borrowing 
    AFTER INSERT ON borrowing 
FOR EACH ROW 
BEGIN 
    UPDATE book 
    SET subsidiary = NULL 
    WHERE id_book = :NEW.book; 
END; 
/
相關問題