表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;

本文探讨了在具有外键约束的数据表中实现级联删除的方法,通过使用触发器和ON DELETE CASCADE子句,可以实现在删除父表记录时自动删除所有相关子表记录,避免了数据不一致的问题。
1809

被折叠的 条评论
为什么被折叠?



