ITPub博客

首页 > 数据库 > Oracle > Oracle触发器 级联删除

Oracle触发器 级联删除

Oracle 作者:temp3x 时间:2013-09-06 14:26:22 0 删除 编辑
请在数据库中添加两个触发器:
1:删除表staff_userinfo中的用户时,同时删除staff_userrole中用户对应的角色;
2:删除表staff_role中的角色时,同时删除staff_rolemodule中角色对应的模块。

错误:
1.create or replace trigger delete_trigger1
after delete on staff_userinfo for each row
begin
    delete from staff_userrole where staff_userinfo.userid=staff_userrole.userid;
end;

2.create or replace trigger delete_trigger2
after delete on staff_role for each row
begin
    delete from staff_rolemodule where staff_role.roleid=staff_rolemodule.roleid;
end;


正确:
1.create or replace trigger delete_trigger1
after delete on staff_userinfo 
 for each row
 begin
   if deleting then
    delete staff_userrole
  where userid=:old.userid;
 end if;
end;
/


2.create or replace trigger delete_trigger2
after delete on staff_role
  for each row
  begin
    if deleting then
     delete staff_rolemodule
    where roleid=:old.roleid;
  end if;
end;
/
<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23494810/viewspace-1116898/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-03-11