MySql--触发器与事件

MySql--触发器与事件

触发器

MySQL触发器的使用和优缺点介绍:https://www.jb51.net/article/230845.htm

## 触发器创建
DELIMITER $$

CREATE
    -- `furn_ssm`.`hasys_session_log_effective_insert` 这个是触发器名称,BEFORE/AFTER INSERT/UPDATE/DELETE 这里可以选择参数
    TRIGGER `furn_ssm`.`hasys_session_log_effective_insert` AFTER INSERT
    ON `furn_ssm`.`hasys_session_log` -- 这里是指定监控表
    FOR EACH ROW BEGIN -- 行级监控(一行变化时)
		-- SQL命令
		-- 触发事件的操作和触发器里面的SQL语句是一个事物操作,具有原子性,要么全部执行,要么都不执行,无需使用事务来写
		-- MySQL 中定义了 NEW 和 OLD 两个临时表,用来表示触发器的所在表中,触发了触发器的哪一行数据,来引用触发器中发生变化的记录内容
		-- 具体定义可参考:mysql 触发器与事务 https://blog.csdn.net/qq_54250695/article/details/124587296   
    END$$

DELIMITER ;

主要用于对表格增删改的监听,如需详细学习请参考以下链接

https://www.bilibili.com/video/BV1qb4y1Y722

事件

主要用于计划任务,定时执行等场景:https://blog.51cto.com/u_15549234/5138457

mysql5.1之后才有event

-- 确认是否开启event功能
SHOW VARIABLES LIKE '%event_sch%';
-- 开启功能(或者启动配置文件中设置)
set global event_scheduler=1;

创建

-- 语法
create event 事件名 on schedule 间隔
starts 时间
ends 时间
Do Sql语句;

-- 示例
-- 建立每隔10分钟执行一次 analyze table aa; 从现在开始,没有结束一直执行
create event x1 on schedule 10 minute
do analyze table aa;

-- 建立每隔1天执行一次 analyze table aa; 从'2013-07-02 12:00:00'开始,一直执行到'2013-12-21 00:00:00'结束
drop event if exists x1; -- 删除之前同名事件
create event x1 on schedule EVERY 1 day
starts '2013-07-02 12:00:00'
ends '2013-12-21 00:00:00'
do analyze table aa;

-- 建立每10秒执行一次 analyze table aa; 从10分钟后开始,一直执行不结束
drop event if exists x1; -- 删除之前同名事件
create event x1 on schedule 10 second
starts current_timestamp + interval 10 minute -- current_timestamp 可以用 now() 替代也可
do analyze table aa;

-- 建立每10分钟执行一次 analyze table aa; 从现在开始,在10天之后结束
drop event if exists x1; -- 删除之前同名事件
create event x1 on schedule 10 minute
ends current_timestamp + interval 10 day
do analyze table aa;

查看删除

show events -- 查看目前拥有的事件信息
SHOW CREATE EVENT `zaixian_zuoxigongzuoliang` -- 查看事件详细信息
drop event 事件名  -- 删除事件

参考链接

mysql的事件调用存储过程_学习mysql事件如何调用存储过程的方法

https://blog.csdn.net/weixin_35726575/article/details/113385589

mysql事件
https://www.bilibili.com/video/BV1T64y1c7nF?is_story_h5=false&p=1&share_from=ugc&share_medium=android&share_plat=android&share_session_id=e57cf4c0-822a-4df7-bff4-8d888b506786&share_source=WEIXIN&share_tag=s_i&timestamp=1660649068&unique_k=W2ynlLy

posted @   邵泽龙  阅读(155)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示