MySQL触发器的使用

MySQL的触发器和存储过程(https://blog.csdn.net/weixin_44951273/article/details/100765929)一样都是嵌入到MySQL的一段程序。触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE和DELETE语句。
触发器(trigger)是个特殊的存储过程,不同的是,执行存储过程要使用CALL语句来调用,而触发器的执行不需要CALL来调用,也不需要手工启动,只要当一个预定义的事件发生时,就会被MySQL自动调用。
创建触发器语法格式:

CREATE TRIGGER trigger_name trigger_time trigger_event
ON table_name FOR EACH ROW trigger_stmt;

其中trigger_name标识触发器的名称;trigger_time标识触发时机,可指定为BEFORE或AFTER;trigger_event标识触发事件,包括INSERT、UPDATE和DELETE;table_name标识建立触发器的表名,即在哪张表上建立触发器;trigger_stmt是触发器程序体,触发器程序可以使用BEGINE和END作为开始和结束,中间包含多条语句。
例:

#创建一个触发器,当向userinfo表插入一条数据时,向usercount表中的count字段进行加1操作
DELIMITER $
CREATE TRIGGER user_count AFTER INSERT ON userinfo FOR EACH ROW 
BEGIN
	UPDATE usercount SET count = count + 1
	WHERE id = 1;
END $

在这里插入图片描述
查看触发器:

SHOW TRIGGERS\G;

在这里插入图片描述
在triggers表中查看触发器信息:
在MySQL中所有触发器的定义都存在INFORMATION_SCHEMA数据库的TRIGGERS表格中,可以通过查询命令SELECT来查看,语法如下:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME="触发器名称"\G; # 查看具体某个触发器
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS # 查看所有触发器

删除触发器:

DROP TRIGGER [database_name]trigger_name;

database_name表示数据库名称,可选,如果省略的话将从当前数据库删除触发器,trigger_name表示要删除的触发器名称。
在这里插入图片描述
在使用触发器的时候应该注意,对于相同的表,相同的事件只能创建一个触发器,对于不在使用的触发器要及时删除。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值