MySQL:触发器

12/31/2023 后端数据库MySQL

目录


参考:


# MySQL:触发器

# 一、触发器的定义

触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。

作用:

  1. 触发器经常用于加强数据的完整性约束和业务规则等;
  2. 可在写入数据前,强制检验或者转换数据(保证安全性);
  3. 触发器发生错误时,前面用户已经执行成功的操作会被撤销,类似事务的回滚。

# 二、触发器类型

触发器是与表有关的数据库对象,指在insert/update/delete之前或之后,触发并执行触发器定义的sql语句。使用别名OLD和NEW来引用触发器中发生变化的记录内容,现在的触发器只支持行级触发,不支持语句级触发。

触发器类型 OLD(之前) NEW(之后)
INSERT类型触发器 NEW表示将要或者已经新增的数据
UPDATE类型触发器 OLD表示修改之前的数据 NEW表示将要或者已经修改的数据
DELETE类型触发器 OLD表示将要或者已经删除的数据

# 三、触发器优缺点

优点

  • 安全性
  • 触发器有回滚性,保证数据完整
  • 保存用户的操作,存入日志
  • 触发器可以对数据库中的相关表进行连环更新

缺点

  • 过分依赖触发器,影响数据库的结构,增加数据库的维护成本
上次更新时间: 9/25/2024, 1:17:45 AM