mysql中定时任务,事件调度的使用过程

之前没用过数据库的定时任务;
程序中有线程池的定时任务,现需要表的关联任务,使用Navicat中加了定时任务和几个函数,没有执行定时的事件。
全过程总结如下:
0. mysql -u root -p
use ***
1. 查看当前是否已开启事件调度器;ON和OFF

		SHOW VARIABLES LIKE 'event_scheduler';    
		+-----------------+-------+
		| Variable_name   | Value |
		+-----------------+-------+
		| event_scheduler | ON    |
		+-----------------+-------+
		1 row in set (0.01 sec)

2.必须确保 event_scheduler 已开启,执行 :

		SET GLOBAL event_scheduler = 1;
		# 或
		SET GLOBAL event_scheduler = ON;

3.查询定时任务

select *from mysql.event
		# 或
SELECT * FROM information_schema.events;

4.定时任务设定

		-- 首先删除 
		DROP EVENT
		IF EXISTS ***;

		-- 创建
		CREATE EVENT ***
		ON   -- 时间 
		ON COMPLETION PRESERVE ENABLE DO
		-- 执行的函数
		CALL CheckCountDaily ();

以每天00:00为例

CREATE EVENT Event_Update_CheckCount 
			ON SCHEDULE EVERY 1 DAY STARTS date_add(date(curdate() + 1),INTERVAL 0 HOUR) 
			ON COMPLETION PRESERVE ENABLE DO
			CALL CountDaily ();

5.关键:关闭和打开事件

关闭事件 :
alter event *** disable; 
开启事件 :
alter event *** enable; 

alter event Event_Update_CheckCount enable

注:mysql服务重启或者断电,会出现事件调度器被关闭的情况,事件不起作用,要想解决,
需要在mysql.ini文件中加入event_scheduler = ON; 的语句

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值