触发器(Trigger)是用户定义在关系表上的一类由事件驱动的特殊过程.一旦定义,任何用户对表的增,删,减和该操作由服务器自动激活相应的触发器,在DBMS核心层进行集中的完整性控制.触发器类似于约束,但是比约束更加灵活,可以实施比FOREIGN KEY约束, CHECK约束更为复杂的检查和操作,具有更精细和更强大的数据控制能力.
触发器的创建语句:
CREATE TRIGGER 触发器名
BEFORE|AFTER 触发事件 ON 表名
FOR EACH ROW |STATEMENT
WHEN 触发条件
触发动作体
触发器详解:
1表的拥有者,即创建表的用户才可以在表上创建触发器,并且一个表上只能创建一定数量的触发器.
2触发器名可以包含模式名,也可以不包含模式名.同一模式下,触发器名必须是唯一的,并且触发器名和表名必须在同一模式下.
3当这个表的数据发生变化时,将激活定义在该表上的相应<触发事件>的触发器,因此,该表也称为触发器的目标表.
4触发事件可以是INSERT,DELETE或UPDATE,也可以是这几个事件的组合,如INSERT OR DELETE 等,UPDATE后面还可以有OF<触发器,...>,即进一步指明修改哪些列时出发器激活.
5触发器按照所触发动作的间隔尺寸可以分为行级触发器(FOR EACH ROW )和语句级(FOR EACH STATEMENT).
6触发器被激活时,只有当触发条件为真时触发动作体才执行;否则触发动作体不执行,如果省略WHEN触发条件,则触发动作体在触发器激活后立即执行