一 , 创建存储过程
DELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ PROCEDURE `mis`.`day`(IN count_dt VARCHAR(10)) /*LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string'*/ BEGIN 写自己的逻辑sql
END$$ DELIMITER ;
二 , 创建定时任务
DELIMITER $$ ALTER DEFINER=`root`@`%` EVENT `day_job` ON SCHEDULE EVERY 1 DAY STARTS '2020-01-02 16:43:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN CALL DAY(DATE_SUB(CURDATE(),INTERVAL 1 DAY)); END$$ DELIMITER ;
表示每天16:43执行day存储过程
还需要查看定时任务是否开启 :
SHOW VARIABLES LIKE 'event%';
如果是否OFF 则需要执行下面sql进行开启 :
SET GLOBAL event_scheduler = 1;
查看事件执行情况
SELECT * FROM mysql.event ;
最后:如果last_executed不为空说明执行成功。另外如果时间的状态是disable可以自行开启