数据库 触发器
触发器(Trigger)
导读:
介绍触发器的相关概念和使用
背景
实际开发中免不了日志功能,这个功能虽然简单,但是总是容易忘记,比如,添加,更改,删除了某个记录,都需要在日志表中加入到一条记录。
这就需要使用事务来包裹起来,形成一个原子操作。但是如果像日志一样,大规模的超频繁的操作,这样似乎不是一个好办法。
定义
官方:触发器时数据库的回调函数,他会在指定的数据库事件发生时自动执行(调用)。
与存储过程一样,触发器也是嵌入到数据库中的一段程序,他的执行不是由程序调用,也不是手动开启,而是由事件来触发。当对某个表进行操作时会自动激活并执行触发器。
优点
- 确保了数据的完整性
- 记录操作日志
- 操作数据前,检查数据的合法性。
缺点
可读性差,维护性差:
数据库表结构变更,导致触发器出错
这些都会由于触 发器本身的隐蔽性,影响到应用中错误原因排查的效率,不了解这个系统的人就很难维护。
SQL
创建
1 |
|
- event_name 事件名称 即 insert,update, delete。
FOR EACH ROW
:可选项,表示每一行数据的操作都会触发该触发器。如果不指定,则触发器在每个语句级别上触发。
1 |
|
查询触发器
查询表里的触发器
1 |
|
下面是整个库的概念与show database show table
1 |
|
删除触发器
1 |
|
参考
数据库 触发器
http://zanderchan666.github.io/2023/10/28/触发器/