触发器是被指定关联到一个表的数据库对象,当一个表的特定事件发生时,它将会被激活。主要用于保护表中的数据。mysql所支持的触发器一共有三种:INSERT触发器、UPDATE触发器、DELETE触发器.
INSERT触发器
在INSERT语句执行之前或之后响应的触发器。应注意如下:
- 对于AUTO_INCREMENT列,NEW在INSERT执行之前包含的值是0,在INSERT执行之后将包含新的自动生成值
UPDATE触发器
在UPDATE语句执行之前或之后响应的触发器。应注意如下:
- 在UPDATE触发器代码内,可引用一个名为NEW(不区分大小写)的虚拟表来访问更新的值。
- 在BEFORE UPDATE触发器中,NEW中的值也可以被更新,即允许更改将要用于UPDATE语句中的值(只要具有对应的操作权限)
- OLD的值全部是只读的,不能被跟新。
- 在UPDATE触发器代码内,可引用一个名为OLD(不区分大小写)的虚拟表来访问UPDATE语句执行前的值。
DELETE触发器
在DELETE语句执行之前或之后响应的触发器。应注意如下:
- OLD的值全部是只读的,不能被跟新。
- 在DELETE触发器代码内,可引用一个名为OLD(不区分大小写)的虚拟表来访问被删除的行。
基本语法
创建BEFORE类型触发器
例子:数据表tb_emp8为员工信息表,包含id、name、deptId和salary字段,创建一个名为SumOfSalary的触发器,触发的条件是向数据表tb_emp8中插入数据之前,对新插入的salary字段值进行求和计算
需要先创建表

创建AFTER类型触发器
例子:创建一个名为double_salary的触发器,触发的条件是向数据表tb_emp6中插入数据之后,再向数据表tb_emp7中插入相同的数据,并且salary为tb_emp6中新插入的salary字段值的2倍

修改触发器就是删掉重新再创建。
基本语法
删除触发器
例子:删除double_salary触发器

版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/11019.html