使用mysql Event完成定时任务

首先查看定时任务是否开启:

运行SQL语句:SHOW VARIABLES LIKE '%sc%'

event_scheduler的值为ON表示已经开启.

一开始我们使用mysql可视化工具来手动创建事件:

创建完成后整个实事件是这个样子滴

下面是这些内容的中文解释:

DELIMITER $$

-- SET GLOBAL event_scheduler = ON$$     -- required for event to execute but not create    
//在jixiu_db库中创建一个名为test_event的事件
CREATE	/*[DEFINER = { user | CURRENT_USER }]*/	EVENT `jixiu_db`.`test_event`
//计划任务,有两种设定计划任务的方式:
ON SCHEDULE
	 /* uncomment the example below you want to use */

	-- scheduleexample 1: run once
//第一种AT时间戳,用来完成单词的计划任务
	   --  AT 'YYYY-MM-DD HH:MM.SS'/CURRENT_TIMESTAMP { + INTERVAL 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...] }

	-- scheduleexample 2: run at intervals forever after creation
//第二种,EVERY时间(单位)的数量时间单位[STARTS时间戳][ENDS时间戳],用来完成重复的计划任务
	   -- EVERY 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...]

	-- scheduleexample 3: specified start time, end time and interval for execution
	   /*EVERY 1  [HOUR|MONTH|WEEK|DAY|MINUTE|...]

	   STARTS CURRENT_TIMESTAMP/'YYYY-MM-DD HH:MM.SS' { + INTERVAL 1[HOUR|MONTH|WEEK|DAY|MINUTE|...] }

	   ENDS CURRENT_TIMESTAMP/'YYYY-MM-DD HH:MM.SS' { + INTERVAL 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...] } */
//表示这个事件补在发生的时候,PRESERVE表示时间执行完毕后不会被删除掉
/*[ON COMPLETION [NOT] PRESERVE]
//表示设定事件的状态,一个执行,一个不执行
[ENABLE | DISABLE]
//注释
[COMMENT 'comment']*/

//sql_statements表示该事件要执行的sql语句或者存储过程
DO
	BEGIN
	    (sql_statements)
	END$$

DELIMITER ;

sql语句直接创建事件:

CREATE EVENT  event_name
    ON SCHEDULE
    ON COMPLETION PRESERVE
    DO
   

删除事件:

DROP EVENT
event_name

实例:

每天凌晨执行更新操作:

CREATE EVENT  master_event
	ON SCHEDULE EVERY 1 DAY STARTS '2019-11-11 16:13:00'
	ON COMPLETION PRESERVE
	DO
	UPDATE db_classify_master SET whetherSign=0 WHERE whetherSign=1

每隔一秒执行master_test存储过程:


CREATE EVENT IF NOT EXISTS e_test
ON SCHEDULE EVERY 1 SECOND
ON COMPLETION PRESERVE
DO CALL master_test();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值