mysql设置定时任务

1.首先检查是否开启了定时任务

查看event是否开启 : SHOW VARIABLES LIKE '%event_sche%';
将事件计划开启 : SET GLOBAL event_scheduler = 1;
将事件计划关闭 : SET GLOBAL event_scheduler = 0;
关闭事件任务 : ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;
开启事件任务 : ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;
查看事件任务 : SHOW EVENTS ;

2.创建一个存储过程

DROP PROCEDURE IF EXISTS p_test;
CREATE PROCEDURE p_test()
BEGIN
INSERT INTO test(create_by, create_name) values('admin', 'admin');
END

3.设置定时任务调用这个存储过程(从2018-12-26 15:57:00点每十秒执行一次)

DROP EVENT IF EXISTS e_test;
CREATE EVENT e_test
ON SCHEDULE EVERY 10 second STARTS TIMESTAMP '2018-12-26 15:57:00'
ON COMPLETION PRESERVE
DO
CALL p_test();

4.常见周期定时规则

  • 周期执行–关键字 EVERY

    单位有:second,minute,hour,day,week(周),quarter(季度),month,year               

on schedule every 1 second //每秒执行1次
on schedule every 2 minute //每两分钟执行1次
on schedule every 3 day //每3天执行1次

 

  • 在具体某个时间执行–关键字 AT

    on schedule at current_timestamp()+interval 5 day //5天后执行
    on schedule at current_timestamp()+interval 10 minute //10分钟后执行
    on schedule at '2016-10-01 21:50:00' //在2016年10月1日,晚上9点50执行

 

  • 在某个时间段执行–关键字STARTS ENDS

on schedule every 1 day starts current_timestamp()+interval 5 day ends current_timestamp()+interval 1 month //5天后开始每天都执行执行到下个月底
on schedule every 1 day ends current_timestamp()+interval 5 day //从现在起每天执行,执行5天

 

 

 

你可能感兴趣的:(mysql)