挨踢小子MySQL触发器介绍、创建、查看、删除

1、介绍

表述:顾名思义在条件符合某种情况时,被触发执行的相关操作。

时间:事件发生前before和发生后after

事件:

名称介绍
update可用old访问旧数据,new访问新数据
delete可用old访问旧数据
insert可用new访问新数据

其中new和old相当于一个对象,封装了当前操作数据的所有字段

2、创建
-- 公众号:挨踢小子

delimiter //  重定义行结束符
	create trigger trigger_name trigger_time trigger_event on table_name for each row
	begin
	-- 需要执行的sql操作语句
	end//
delimiter ;
-- delimiter  		用于修改默认的行结束符,由于在触发器中有多条sql语句,他们需要使用分号来结束,但是触发器是一个整体,所以需要先更换默认的行结束符
-- trigger_name 	自定义触发器名
-- trigger_time		时间点 before|after
-- trigger_event 	事件 delete|update|insert
-- table_name 		表名

案例:

-- 公众号:挨踢小子

delimiter //  
create trigger t_name after update on sys_role for each row
begin 

 INSERT INTO `sys_role` (`role_id`, `role_name`, `role_key`, `role_sort`, `data_scope`, `status`, `del_flag`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES ('4', '测试角色', 'test', '4', '1', '0', '0', 'admin', '2019-05-14 10:57:34', 'bigadmin', '2019-06-13 15:04:48', '');

end	//
delimiter ;
3、位置

在mysql中所有触发器的定义都存在INFORMATION_SCHEMA 数据库的TRIGGERS表格中,可以通过SELECT来查看。

-- 公众号:挨踢小子

Select * FROM  INFORMATION_SCHEMA.TRIGGERS ;

TRIGGERS表

表字段解释
TRIGGER_SCHEMA表示触发器所在的数据库;
TRIGGER_NAME后面是触发器的名称;
EVENT_OBJECT_TABLE表示在哪个数据表上触发
ACTION_STATEMENT表示触发器触发的时候执行的具体操作
ACTION_ORIENTATION是ROW ,表示在每条记录上都触发
ACTION_TIMING表示触发的时刻是AFTER,剩下的是和系统相关的信息
4、查看
-- 公众号:挨踢小子

show triggers;  # 查看所有触发器
show create trigger 触发器名;  # 查看创建指定的触发器语句

展示:
在这里插入图片描述

5、删除
-- 公众号:挨踢小子

drop trigger 触发器名;  
6、注意

1、 在使用触发器的时候需要注意,对于相同的表,相同的事件只能创建一个触发器。

2、 及时删除不再需要的触发器。否则会导致继续触发,从而影响数据的完整性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值