如果你有两张桌子(课程和老师)
- 表 course 包含:C#、course_name、teacher、supervisor
- 表教师包含:T#、教师姓名、部门
Teacher 和 supervisor 是外键,这意味着它们包含 T#。
现在我想创建一个触发器来检查老师和主管是否都来自同一个部门(数学、编程等),如果不是,则应该显示错误。它应该是新课程触发器的“插入”。
如果你有两张桌子(课程和老师)
Teacher 和 supervisor 是外键,这意味着它们包含 T#。
现在我想创建一个触发器来检查老师和主管是否都来自同一个部门(数学、编程等),如果不是,则应该显示错误。它应该是新课程触发器的“插入”。
您可以使用以下触发器:
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 ;