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
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号