查看当前是否已开启事件调度器,如果显示 ON 证明已经开启,如果显示 OFF 证明是关闭状态
SHOW VARIABLES LIKE 'event_scheduler'
打开事件调度器
SET GLOBAL event_scheduler =1
-- 或者
SET GLOBAL event_scheduler = ON;
注意:默认状况下,每次重启 MySql 后事件调度器为关闭状态
如需默认开启,则需在 my.ini 配置文件中加上
[mysqld]
event_scheduler=ON
创建事件
-- 如存在则删除名为 event_name 的事件
DROP EVENT IF EXISTS event_name;
-- 创建事件 event_name
CREATE EVENT event_name
-- 执行周期,具体规则见下方【定时规则举例】模块
ON SCHEDULE EVERY 1 MINUTE
-- 从什么时间点开始周期,注意时区设置
STARTS TIMESTAMP '2009-12-18 02:58:00'
DO
-- 要定期执行的SQL语句
定时规则举例(注意时间与时区)
-- 5天后执行
ON SCHEDULE AT CURRENT_TIMESTAMP ()+ INTERVAL 5 DAY
-- 指定时间点执行
ON SCHEDULE AT '2019-01-01 00:00:00'
-- 5天后开始每天都执行执行到下个月底
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
查看定时任务
SELECT
event_name,
event_definition,
interval_value,
interval_field,
STATUS
FROM
information_schema.EVENTS;