前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL触发器知识整理

MySQL触发器知识整理

作者头像
挨踢小子部落阁
发布2019-08-23 11:25:03
2.2K0
发布2019-08-23 11:25:03
举报
1、介绍

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

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

事件:

名称

介绍

update

可用old访问旧数据,new访问新数据

delete

可用old访问旧数据

insert

可用new访问新数据

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

2、创建
代码语言:javascript
复制
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         表名

案例:

代码语言:javascript
复制
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来查看。

代码语言:javascript
复制
Select * FROM  INFORMATION_SCHEMA.TRIGGERS ;

TRIGGERS表

表字段

解释

TRIGGER_SCHEMA

表示触发器所在的数据库;

TRIGGER_NAME

后面是触发器的名称;

EVENT_OBJECT_TABLE

表示在哪个数据表上触发

ACTION_STATEMENT

表示触发器触发的时候执行的具体操作

ACTION_ORIENTATION

是ROW ,表示在每条记录上都触发

ACTION_TIMING

表示触发的时刻是AFTER,剩下的是和系统相关的信息

4、查看
代码语言:javascript
复制
show triggers;  # 查看所有触发器
show create trigger 触发器名;  # 查看创建指定的触发器语句

展示:

5、删除
代码语言:javascript
复制
drop trigger 触发器名;  
6、注意

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 挨踢小子 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、介绍
  • 2、创建
  • 3、位置
  • 4、查看
  • 5、删除
  • 6、注意
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档