一 , 創建存儲過程
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可以自行開啟
