ORACLE外鍵約束(FORIGEN KEY)


ORACLE外鍵約束

  1. 外鍵約束的定義是,讓另一張表的記錄來約束自己。這里的另一張表就是主表。
  2. 當主表的記錄刪除時,我們可以跟隨主表刪除記錄(ON DELETE CASCADE)、或者相應字段設置為空(ON DELETE SET NULL)、或者不允許刪除(默認)。

    a) 注意一:當主表被級聯刪除(DORP TABEL WEN CASCADE CONSTRAINTS)時,從表建立的與主表關聯的外鍵約束將被刪除,從表數據不會發生變化。

    1.   假設從表為另一個表外鍵約束對應的主表,該外鍵約束關系不會受到影響。

    b) 注意二:從表外鍵約束指向的主表字段,必須是唯一性約束或主鍵約束的字段。

    1.     因為,當外鍵約束指向的主表記錄有重復項時,刪除其中之一時,從表伴隨操作不明朗。

 

創建表時創建外鍵語法:

PRIMARY[ˈpraɪməri] 主要的、關鍵

FOREIGN[ˈfɒrən] 外鍵

REFERENCES[ˈrefrəns]

CONSTRAINT [kənˈstreɪnt]:約束、限制、強制

 

CREATE TABLE WEN

(

MY CHAR(10) NOT NULL,

LOVE CHAR(8) NOT NULL,

PRIMARY KEY (MY),

CONSTRAINT WEN_FK FOREIGN KEY (MY,LOVE)

REFERENCES GUOGUO(MY,LOVE) ON DELETE CASCADE --當主表記錄刪除時,從表記錄伴隨刪除

)

ON DELETE SET NULL;

當主表記錄刪除時,設置從表數據為NULL,注意,從表字段必須允許為NULL

不寫ON語句時,默認不允許刪除主表記錄。

 

 

修改表時追加外鍵:

ALTER TABLE WEN

ADD CONSTRAINT WEN_FK FOREIGN KEY(MY,LOVE) REFERENCES GUOGUO(MY,LOVE) ON DELETE CASCADE

 

ALTER TABLE GUOGUO ADD CONSTRAINT GUOGUO_FK FOREIGN KEY(MY,LOVE) REFERENCES

WEN(MY,LOVE) ON DELETE SET NULL

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM