介绍触发器之前,我们先来看一下导图
什么是触发器?
是一个在修改指定表中的数据时执行的存储过程,执行时是通过事件进行触发
为什么要使用触发器?
1、自动执行
2、可通过相关表进行层叠更改
3、可强制限制
触发器种类
- DDL触发器
- 发生数据定义语言
- 防止对数据库架构进行更改
- 发生情况时以响应架构中的更改
- 记录更改或事件
- 发生数据定义语言
- DML触发器
- 发生数据操作语言
- INSERT触发器
- UPDATE触发器
- DELETE触发器
- 可查询其他表
- 可进行增删改查
- 发生数据操作语言
创建INSERT触发器
示例
创建DELETE触发器
示例
创建UPDATE触发器
示例
创建DDL触发器
示例
管理触发器
方法:修改、禁用、启用、删除
通过具体的操作命令
通过命令就可以查看触发器的创建语句,可以简单微调进行调整,完成后直接进行执行即可。
如果想要本次的操作不能触发,可以选择禁用这个触发器,之后可以选择启用。
**
嵌套触发器**
嵌套触发器是什么?
一个触发器在执行操作时引起了另一个触发器,而这个触发器又接着引发下一个触发器
触发器最多嵌套32层
示例
递归触发器
任何触发器都可以包含影响同一个表或者是另一个表的update insert delete语句。如果启用递归触发器,改变表中数据的触发器,通过递归执行可以再次触发自己。在数据库创建时,默认情况下递归触发器选项是禁用的,可以通过alter database语句(或者是操作界面)来启用。
操作
数据库-属性-选项-杂项-递归触发器已启用-true
注意事项:
1、必须经过有条理的设计和全面的测试
2、在任一点的数据修改会触发一系列触发器,如果表要求已特定的顺序更新用户的表时,使用递归触发器会产生问题。
3、所有触发器一起构成一个大事务。任何触发器中的任何位置上的rollback命令都将取消所有的数据输入。 4、触发器最多递归16层。