mysql計划任務每天定時執行,每天的零點執行一個存儲過程
1、開啟數據庫定時調度
show variables like '%sche%'; //查看是否開啟
select * from mysql.user where user='root'
set global event_scheduler =1 //設置開啟
2、創建存儲過程,這里的存儲過程主要提供給mysql的定時器event來調用去執行:
CREATE DEFINER=`root`@`%` PROCEDURE `update_level_status`()
COMMENT '根據過期時間更新會員狀態'
BEGIN
UPDATE user_activity SET `level`=0 WHERE `level`=1 AND (expire_time IS NULL OR `expire_time`<CURRENT_TIMESTAMP());
END
3、開啟定時器event
CREATE DEFINER=`root`@`%` EVENT `time_update_level_status` ON SCHEDULE EVERY 1 DAY STARTS '2019-12-04 00:00:00' ON COMPLETION NOT PRESERVE ENABLE COMMENT '定時刷新level狀態' DO CALL update_level_status