MySQL 触发器
概述
触发器是 MySQL 的数据库对象之一,不需要程序调用或手工启动,而是由事件来触发、激活,从而实现执行,包括 INSERT 语句、UPDATE 语句和 DELETE 语句
创建触发器
1. 创建有一条执行语句的触发器
CREATE trigger trigger_name BEFORE|AFTER trigger_EVENT
ON TABLE_NAME FOR EACH ROW trigger_STMT
- 参数 trigger_name 表示要创建的触发器名
- 参数 BEFORE 和 AFTER 指定触发器执行时间,分别表示触发器事件之前或之后执行
- 参数 trigger_EVENT 表示触发事件,包括 INSERT 语句、UPDATE 语句和 DELETE 语句
- 参数 TABLE_NAME 表示触发事件的操作表名
- 参数 FOR EACH ROW 表示任何一条记录的操作满足触发事件都会触发该触发器
- 参数 trigger_STMT 表示激活触发器后被执行的语句
2. 创建包含多条执行语句的触发器
CREATE trigger trigger_name BEFORE|AFTER trigger_EVENT
ON TABLE_NAME FOR EACH ROW
BEGIN
trigger_STMT
END
和只有一条执行语句相比,该语法多出两个关键字 BEGIN 和 END,中间是所要执行的多个执行语句的内容,执行语句之间用分号隔开
在 MySQL 中,一般用分号作为语句的结束符号,可是在创建触发器时,需要用分号作为执行语句的结束符号,为了解决这个问题,可以使用关键字 DELIMITER 语句重新设置结束符
查看触发器
通过 SHOW TRIGGER 语句查看触发器
SHOW TRIGGER \G
执行完该语句会显示一个列表,其中:
- 参数 Trigger 表示触发器名称
- 参数 Event 表示触发器的激发时间
- 参数 Table 表示触发器对象触发事件所操作的表
- 参数 Statement 表示触发器激活时执行的语句
- 参数 Timing 表示触发器所执行的时间
也可以通过查看系统表 triggers 查看触发器
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS \G
删除触发器
删除触发器可用通过 SQL 语句 DROP TRIGGER 来实现
DROP TRIGGER trigger_name
参数 trigger_name 表示所要删除的触发器名称
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战