【数据库视频】什么是触发器

介绍触发器之前,我们先来看一下导图
在这里插入图片描述
什么是触发器?
是一个在修改指定表中的数据时执行的存储过程,执行时是通过事件进行触发
为什么要使用触发器?
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层。

猜你喜欢

转载自blog.csdn.net/weixin_45490023/article/details/111146358