MySQL之触发器

MySQL触发器

触发器是个特殊的存储过程:当一个预定义的事件发生的时候,被MySQL自动调用


创建触发器

1、创建只有一个执行语句的触发器

CREATE TRIGGER trigger_name trigger_time trigger_event
ON tb1_name FOR EACH ROW trigger_stmt

trigger_time:触发时机,可以指定为before或after
trigger_event:出发事件,包括INSERT、UPDATE和DELETE
tb1_name:建立触发器的表名
trigger_stmt:触发器程序体

2、创建有多个执行语句的触发器

CREATE TRIGGER trigger_name trigger_time trigger_event
ON tb1_name FOR EACH ROW  trigger_stmt

trigger_stmt:使用begin和end作为开始与结束

NEW.字段名为触发事件的字段


例:
创建一个counts表,event表

CREATE TABLE counts(id int);
CREATE TABLE event(id int,evt_name varchar(50));

创建一个触发器,向counts表中插入数据后,后向event表中插入数据

CREATE TRIGGER trig_insert AFTER INSERT ON counts
FOR EACH ROW INSERT INTO event VALUES(NEW.id,'after insert');

插入数据
INSERT INTO counts VALUES(1),(2),(3);
查询
SELECT *FROM event;
Output:

+------+--------------+
| id   | evt_name     |
+------+--------------+
|    1 | after insert |
|    2 | after insert |
|    3 | after insert |
+------+--------------+

查看触发器

1、SHOW TRIGGERS
2、在triggers表中查看触发器信息
SELECT *FROM INFORMATION_SCHEMA.TRIGGERS WHERE condition;


删除触发器

DROP TRIGGER [schema_name.]trigger_name
schema_name:数据库名称,可选。

注意:相同的表,相同的事件只能创建一个触发器;及时删除不必要的触发器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值