MySQL:触发器
accttodo 12/31/2023 后端数据库MySQL
目录
参考:
# MySQL:触发器
# 一、触发器的定义
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。
作用:
- 触发器经常用于加强数据的完整性约束和业务规则等;
- 可在写入数据前,强制检验或者转换数据(保证安全性);
- 触发器发生错误时,前面用户已经执行成功的操作会被撤销,类似事务的回滚。
# 二、触发器类型
触发器是与表有关的数据库对象,指在insert/update/delete之前或之后,触发并执行触发器定义的sql语句。使用别名OLD和NEW来引用触发器中发生变化的记录内容,现在的触发器只支持行级触发,不支持语句级触发。
触发器类型 | OLD(之前) | NEW(之后) |
---|---|---|
INSERT类型触发器 | NEW表示将要或者已经新增的数据 | |
UPDATE类型触发器 | OLD表示修改之前的数据 | NEW表示将要或者已经修改的数据 |
DELETE类型触发器 | OLD表示将要或者已经删除的数据 |
# 三、触发器优缺点
优点
- 安全性
- 触发器有回滚性,保证数据完整
- 保存用户的操作,存入日志
- 触发器可以对数据库中的相关表进行连环更新
缺点
- 过分依赖触发器,影响数据库的结构,增加数据库的维护成本