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 ;
原文地址:https://www.cnblogs.com/codeAB/p/9603276.html