Mysql触发器的使用,创建,修改和删除

触发器的概念
触发器(TRIGGER)是由时间来触发某个操作,这些时间包括insert语句和delete语句,当数据系统执行这些事件的时候,就会激活触发器执行的相应的操作
1.创建触发器
在Mysql中创建触发器通过SQL语句CREATE TRIGGER来实现,其语法形式如下:
CREATE trigger trigger_name BEFORE|AFTER trigger_EVENT ontable_name for EACH ORW trigger_STMT


参数trigger_name表示创建触发器的名字


参数before和after表示触发器执行的时间


参数 trigger_event表示触发事件,即触发器执行的条件,包含DELETE,insert和UPDATE 语句


参数table_name表示触发事件的操作表名


参数FOR EACH ROW表示任何一条记录上操作满足触发事件都会触发该触发器


参数trigger_STMT表示激活触发器后被执行的语句。执行语句中如果要引用更新记录中的字段,对应insert语句只有new是合法的,表示当前已插入的记录,对应delete语句,只有OLD才合法,表示当前删除的记录,而UPDATE语句可以和NEW(更新后)以及OLD(更新前)同时使用


注意:不能创建具有相同名字触发器,另外,对应具有相同触发程序动作事件和事件给定表,不能有两个触发器,因此,对于有经验的程序员,在创建触发器之前需要查看Mysql中是否已经创建存在改标识符触发器和触发器相关的事件


案例:
执行sql语句Create trigger,在数据库school中存在两个表对象,学员表student和班级表class ,创建触发器实现在学员表中插入数据时,就会在出入后更新班级表中的人数,当我们删除某条学员的记录时,就会删除后更新表中的人数
Mysql触发器的使用,创建,修改和删除_第1张图片
创建班级表如上,此时班级内的学生成员为0
在这里插入图片描述

创建触发器 ,当插入学生表时 给对于班级的人数加1
在这里插入图片描述
往学生表里插入相应的人
Mysql触发器的使用,创建,修改和删除_第2张图片
此时对于的班级表里面的人数也发生了 改变


以上是触发器 包含一条命令 还存在触发器包含多条命令
语法如下:
create trigger trigger_name BEFORE|AFTER trigger_EVENT
on table_name for each row
BEGIN
trigger_STMT
END
执行多条命令的触发器 只比执行一条的多两个关键字,begin和end,在这两个关键字之间是要执行多个语句,它们之间用分号分开。


在MySQL中,一般情况下用“;”符号作为语句的结束符号,可是在创建触发器时,需要用到“;”符号作为执行语句的结束符号。为了解决该问题,可以使用关键字DELIMITER语句。例如,“DELIMITER $$”可以将结束符号设置成“$$”。
首先把结束符 设置为$$
在这里插入图片描述
这是最开始的学生表和成绩表
Mysql触发器的使用,创建,修改和删除_第3张图片
Mysql触发器的使用,创建,修改和删除_第4张图片
这是创建的触发器
Mysql触发器的使用,创建,修改和删除_第5张图片
删除熊大的信息后
在这里插入图片描述
对应的班级表里面人数少一 成绩表里卖弄也查不到成绩
Mysql触发器的使用,创建,修改和删除_第6张图片
2.触发器的修改
直接删除重新创建 最快捷
3.触发器的查看
SHOW TRIGGERS ;
Mysql触发器的使用,创建,修改和删除_第7张图片

既可以看见相关触发器的信息

–【奇牛学院】

你可能感兴趣的:(MySQL,触发器,mysql)