Oracle 觸發器刪除外來鍵約束

2021-08-22 10:39:12 字數 466 閱讀 7556

表grade,和表stu具有外來鍵約束,資料表grade就不能隨便刪除資料 ,這時候就用觸發器解決此類問題,即使有外來鍵關聯,也要刪除。

--級聯刪除是指在建立外來鍵約束時通過on delete cascade子句設定,這樣在刪除父表資料時,由父表資料關聯的所有子表資料都會被同時刪除

注意:觸發器不能有事務,觸發的過程中:事件(不能rollback)

create or replace trigger  tri_grade_cascade

before  delete on grade

for each row 

begin

delete  from stu  where gid= :old.gid;

end  tri_grade_cascade;

--嘗試刪除資料

delete   from    grade    where gid=1;

commit; 

刪除外來鍵約束

主表 create table test1 id int primary key not null,value int insert test1 select 1,2 go 從表 create table test2 id int references test1 id value int go 第...

oracle 刪除外來鍵約束 禁用約束 啟用約束

執行以下sql生成的語句即可 刪除所有外來鍵約束 sql select alter table table name drop constraint constraint name from user constraints where constraint type r 禁用所有外來鍵約束 sql...

oracle禁用觸發器,主外來鍵約束

alter table 表名 disable all triggers 禁用指定表相關的觸發器 alter table 表名 enable all triggers 啟用指定表相關的觸發器 select t.status,t.from user triggers t where t.table na...