触发器(trigger):是一类靠事件驱动的特殊过程。触发器一旦被某一用户定义,任何用户对触发器规定的数据进行更新时,均自动激活相应的触发器采取相应的措施。
创建:CREATE TRIGGER <触发器名>
撤销:DROP TRIGGER
设计举例:
create trigger trig_grade --触发器名trig_grade after update of grade on sc --关系表sc的成绩修改后激活触发器 referencing old as oldg , new as newg --olds和newg分别为修改前后的元组变量 for each row --对每个元组都要检查一次 when (oldg.grade > newg.grade) --条件 update sc set grade = oldg.grade where cno = newg.cno
事件关键字:before 在触发事件完成以前,测试when条件是否满足,满足则执行
after 在触发事件完成之后,测试when条件是否满足,满足则执行
触发事件:update 允许后面跟有 OF<属性> ,应有old as ,new as
delete 是对整个元组的操作,应有 old as
insert 是对整个元组的操作,应有 new as
动作间隔:元组级 (带有 for each row) 对每个修改的元组都要检查一次
语句级 检查一次SQL语句的执行结果