Oracle外來鍵級聯刪除和級聯更新

2021-09-02 13:25:19 字數 567 閱讀 4788

oracle外來鍵級聯刪除和級聯更新

oracle在外鍵的刪除上有no action(類似restrict)、cascade和set null三種行為。

1.1 no action

no action指當刪除主表中被引用列的資料時,如果子表的引用列中包含該值,則禁止該操作執行。

現在學生外來鍵級聯刪除是no action,執行刪除班級操作

oracle會提示違反完整性約束: ora-02292

1.2 set null

set null指當刪除主表中被引用列的資料時,將子表中相應引用列的值設定為null值。set null有個前提就是外來鍵引用列必須可以設定為null。

把學生表(tb_student)的外來鍵刪除行為改為set null。oracle似乎沒有modify constraint操作,只能先刪除外來鍵,然後建立新的。

1.3 cascade

cascade指當刪除主表中被引用列的資料時,級聯刪除子表中相應的資料行。

把學生表(tb_student)的外來鍵刪除行為改為cascade。

Oracle外來鍵級聯刪除和級聯更新

oracle在外鍵的刪除上有no action 類似restrict cascade和set null三種行為。下面以學生 班級為例說明不同情況下的外來鍵刪除,學生屬於班級,班級的主鍵是學生的外來鍵。班級表 crate table tb class id number not null,班級主鍵 n...

Oracle外來鍵級聯刪除和級聯更新

oracle在外鍵的刪除上有no action 類似restrict cascade和set null三種行為。下面以學生 班級為例說明不同情況下的外來鍵刪除,學生屬於班級,班級的主鍵是學生的外來鍵。班級表 crate table tb class id number not null,班級主鍵 n...

Oracle外來鍵級聯刪除和級聯更新

oracle在外鍵的刪除上有no action 類似restrict cascade和set null三種行為。以下以學生 班級為例說明不同情況下的外來鍵刪除,學生屬於班級。班級的主鍵是學生的外來鍵。班級表 crate table tb class id number not null,班級主鍵 n...