MySQL 中触发器的应用

在一个教育系统里面,有 科目表 ,章节表(每一科目对应若干大章节),小节表(每一大章节下面有若干小节),习题表(每一小节对应若干习题),

在后台管理系统中 有这样几个功能要实现,在 科目列表页面中  可以删除某一科目,在章节列表页面中,可以删除某一章节,小节列表和习题列表同样,

那么有一个问题要先提出来,就是科目被删除后,科目下面对应的大章节,大章节对应的小章节,以及习题  要不要同步删除?

当然是要同步删除的。

当遇到这种有依赖关系(可以理解为连锁效应)的情况,何以解决,唯有触发器。

(表的具体结构没必要说明,不影响理解)

delimiter &&

drop trigger if exists del_sorts;

create trigger del_sorts after delete
on course_sorts for each row begin
delete from course_chapter where pid=old.id;
end && delimiter ; delimiter && drop trigger if exists del_chapter; create trigger del_chapter after delete
on course_chapter for each row begin
delete from course_section where pid=old.id;
end && delimiter ; delimiter && drop trigger if exists del_section; create trigger del_section after delete
on course_section for each row begin
delete from practice where section_id=old.id;
end && delimiter ;
上一篇:dup2替换


下一篇:php获取checkbox复选框的内容