您的位置:首页 > 数据库 > MySQL

mysql学习十八之mysql触发器学习,创建、删除、查看触发器,new,old关键字,多条sql语句下的触发器创建

2019-02-01 13:16 471 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33322074/article/details/86738260

一、什么是触发器?

1、mysql触发器是:在当前的数据库表中设置一个对每行数据的一个监听器,监听相关事件,每当事件发生时。会执行一段由sql完成的一段功能代码。这段功能代码也是sql语句。

2、触发器的元素:

事件,执行代码。

二、创建触发器

[code]create trigger 触发器名字 事件 执行代码;

执行代码就是sql语句或sql语句块。

1、事件内容:

插入:insert 删除:delete  修改:update

事件的时机:执行之前,执行之后。内容和时机组合共有六种事件。

Before insert  ,Before delete ,before update ,after insert ,after delete ,after update.

注意:这个时机,是针对其后表的内容的监控。

比如:

[code]create trigger jiaobanfei after update on t_student

for each row

update t_class set t_class_money=t_class_money+20;

此处的after update on是说t_student表的每一行更新后,就立即更新t_class表中的t_class_money字段。

2、具体语法

删除触发器:

[code]drop trigger 触发器名字;

注意事项:

1、触发器不能同名

2、目前mysql只支持一类事件设置一个触发器。

三、管理触发器

1、查看触发器:

[code]show create trigger trigger_name;

2、在触发器中获取触发该触发程序时的数据。

利用触发程序内的new 和old来完成。

注意:insert中不能使用old,delete中不能使用new。

3、多条sql语句下的触发器

sql语句块用begin   end包裹。

整个触发器语句用delimiter包裹。

例如:

[code]delimiter $$
create trigger ruxue after insert on czbk_student
for each row
begin
update class set stu_count=stu_count+1;
update class set cz_money=zc_money+2e;
end
$$
delimiter;

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: