mysql 5.7.13触发器_MySQL-5.7 创建及查看触发器

触发器的作用是当表上有对应SQL语句发生时,则触发执行。

1.语法

CREATE

[DEFINER = {user|CURRENT_USER}]

TRIGGER   trigger_name

trigger_time    trigger_event

ON  tbl_name  FOR  EACH  ROW

[trigger_order]

trigger_body

trigger_time: {BEFORE|AFTER}

trigger_event: {INSERT|UPDATE|DELETE}

trigger_order: {FOLLOWS|PRECEDES} other_trigger_name

说明:

trigger_name:触发器的名称,不能与已经存在的触发器重复;

trigger_time:{ BEFORE | AFTER },表示在事件之前或之后触发;

trigger_event::{ INSERT |UPDATE | DELETE },触发该触发器的具体事件;

tbl_name:该触发器作用在tbl_name上;

2.关键说明

Definer关键词用来指定trigger的安全环境;

trigger_time指定触发器的执行时间,BEFORE和AFTER指定触发器在表中的每行数据修改前或者后执行;

trigger_event指定触发该触发器的集体事件:

INSERT 当新的一行数据插入表中时触发,如执行insert,load data,replace语句插入新数据

UPDATE 当表的一行数据被修改时触发,如执行update语句时

DELETE 当表的一行数据被删除时触发,如执行delete,replace语句时

当执行insert into...on duplicate key update语句时,当碰到重复行执行update时,则触发update下的触发器;

从5.7.2版本开始,可以创建具有相同trigger_time和trigger_event的同一个表上的多个触发器,默认情况下,按照创建时间依次执行,通过指定FOLLOWS/PRECEDES改变执行顺序,即FOLLOWS时表示新创建的触发器执行,PRECEDES则表示新触发器先执行;

trigger_body 表示触发器触发之后要执行的一个或多个语句,在内部可以引用涉及表的字段,OLD.col_name表示行数据被修改或删除之前的字段数据,NEW.col_name表示数据被插入或修改之后的字段数据;

3.实例

779f74a1cdbf

4.查看触发器(information_schema)

779f74a1cdbf

5.删除触发器

DROPTRIGGER[IFEXISTS] [schema_name.]trigger_name

if exists用来避免删除不存在的触发器时引发的报错

当你执行drop table时,表上的触发器也被drop掉了

mysql> drop trigger simple_trigger;Query OK, 0 rows affected (0.00 sec)

原文链接:https://www.cnblogs.com/tongxiaoda/p/8031891.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值