SQL 触发器
触发器是用户定义的由事件驱动的特殊过程,满足条件则触发,并执行相应动作。
触发器在 SQL 99 之后才写入 SQL 标准,但此前很多关系数据库管理系统就支持了触发器,因此不同关系数据库管理系统的触发器语法各不相同、互不兼容。
一、什么是触发器
触发器又叫事件-条件-动作规则。当特定的事件发生时,对条件进行检查,如果条件成立,则执行动作。
触发器定义在表上,当表中的数据发生变化时,将激活定义在表上的触发器。
触发器过多将会影响数据库性能,因此应该谨慎使用触发器。
二、定义触发器
1 |
|
1.触发事件
before|after
是触发的事件,表示在事件之前或之后激活触发器。
触发事件可以是 insert 、delect 或 update 及其它们的组合,也可以指定修改哪些列时才激活触发器。
2.数值引用
如果是行级触发器,可以设置语句 referencing new|old row as 变量
,之后便可以用 new 或 old 来引用事件后或事件前的属性值。
3.触发器类型
通过 for each row|statement
指定触发器为行级触发器或语句级触发器。
- 行级触发器:每次触发后,每行都会执行一次
- 语句级触发器:每次触发后,只执行一次
4.触发条件
当事件发生后,触发器被激活,判断触发条件,当触发条件成立时,触发动作执行。
5.触发动作
当特定的事件发生时,对条件进行检查,如果条件成立,则执行动作。
三、删除触发器
1 |
|
参考
- 数据库系统概论