MySQL触发器Triggers
========================================================
触发器简介
创建触发器
查看触发器
删除触发器
触发器案例
一、触发器简介
触发器(trigger)是一个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,
比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整
性约束和业务规则等。
例如,当学生表中增加了一个学生的信息时,学生的总数就应该同时改变。因此可以针对学生表创建一个触发
器,每次增加一个学生记录时,就执行一次学生总数的计算操作,从而保证学生总数与记录数的一致性。
二、创建Trigger
语法:
CREATE TRIGGER 触发器名称 BEFORE|AFTER 触发事件
ON 表名 FOR EACH ROW
BEGIN
触发器程序体;
END
<触发器名称> 最多64个字符,它和MySQL中其他对象的命名方式一样
{ BEFORE | AFTER } 触发器时机
**{ INSERT | UPDATE | DELETE }**触发的事件
ON <表名称> 标识建立触发器的表名,即在哪张表上建立触发器
FOR EACH ROW 触发器的执行间隔:FOR EACH ROW子句通知触发器 每隔一行
执行一次动作,而不是对整个表执行一次
<触发器程序体> 要触发的SQL语句:可用顺序,判断,循环等语句实现一般程序需要的逻辑功能
触发器示例
1. 创建表
|
|
2. 创建触发器student_insert_trigger
创建触发器,实现添加学生信息,数量自动增加
|
|
创建触发器,删除学生信息,数量自动减少
|
|
删除一个学生信息
|
|
查看学生信息
三、查看触发器
1. 通过SHOW TRIGGERS语句查看
|
|
2. 通过系统表triggers查看
USE information_schema
SELECT * FROM triggers\G
SELECT * FROM triggers WHERE TRIGGER_NAME=‘触发器名称’\G
四、删除触发器
1. 通过DROP TRIGGERS语句删除
DROP TRIGGER 解发器名称
|
|