-1

如果你有两张桌子(课程和老师)

  • 表 course 包含:C#、course_name、teacher、supervisor
  • 表教师包含:T#、教师姓名、部门

Teacher 和 supervisor 是外键,这意味着它们包含 T#。

现在我想创建一个触发器来检查老师和主管是否都来自同一个部门(数学、编程等),如果不是,则应该显示错误。它应该是新课程触发器的“插入”。

4

1 回答 1

0

您可以使用以下触发器:

delimiter //
create trigger trg_ins_course_teacher_supervisor 
before insert on course
for each row
begin
    if 
        (select t.department from teacher t where t.t# = new.teacher)
        != (select t.department from teacher t where t.t# = new.supervisor)
    then
        signal 
            sqlstate '45000' 
            set message_text = 'teacher and supervisor must belong to the same department';
    end if;
end
//
delimiter ;
于 2020-02-05T23:48:31.340 回答