数据库触发器(Database Trigger)
1. 什么是触发器?
触发器是当数据库被修改时自动执行的过程语句(procedural statements)。
例如:
一个银行的审计日志,每一次账户的余额被修改了,触发器就可以更新审计表,存储修改的细节。
2. 触发器的作用
(1) 阻止对表数据的非法操作
(2) 自动更新时间戳或列的值等等
(3) 当数据进行了特定的修改时执行一些商业的行为,比如,当检测到一个零件的库存低于一定值的时候,可以自动预定新的订单
(4) 复制修改的东西到其他表,甚至其他数据库
3. 触发器的机制
数据库的触发器必须时刻跟踪两件事:
(1) 触发器什么时候要执行?
- 导致触发器执行的事件(event)
- 触发器在执行前需要满足的条件(condition)
(2) 触发器要做什么?
- 触发器在执行时的行为(action)
以上被称为event-condition-action模型
4. 触发器什么时候执行?
- 数据库一般支持insert,delete,update类型的触发器。不支持select型触发器,因为select操作是频繁进行的操作,设置select语句的触发器可能会导致数据库性能下降
- 触发器也不能阻止