MariaDB 触发器连接两个表?
MariaDB Trigger joining two tables?
如果你有两个 table(课程和老师)
- table 课程包含:C#,course_name,老师,导师
- table老师contains:T#,teacher_name,部门
老师和主管是外键,意味着它们包含 T#。
现在我想制作一个触发器来检查老师和主管是否都来自同一部门(数学、编程等),如果不是,则应该显示错误。它应该是新课程触发器的 "insert"。
您可以使用以下触发器:
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 ;
如果你有两个 table(课程和老师)
- table 课程包含:C#,course_name,老师,导师
- table老师contains:T#,teacher_name,部门
老师和主管是外键,意味着它们包含 T#。
现在我想制作一个触发器来检查老师和主管是否都来自同一部门(数学、编程等),如果不是,则应该显示错误。它应该是新课程触发器的 "insert"。
您可以使用以下触发器:
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 ;