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 ,创建触发器实现在学员表中插入数据时,就会在出入后更新班级表中的人数,当我们删除某条学员的记录时,就会删除后更新表中的人数
在这里插入图片描述
创建班级表如上,此时班级内的学生成员为0
在这里插入图片描述

创建触发器 ,当插入学生表时 给对于班级的人数加1
在这里插入图片描述
往学生表里插入相应的人
在这里插入图片描述
此时对于的班级表里面的人数也发生了 改变


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


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

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

–【奇牛学院】

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值