定时任务功能的开启:
方法1:
SET GLOBAL event_scheduler = 1;
或者:SET GLOBAL event_scheduler = ON;
注意:这种方法在重启mysql时就又会失效
方法2:
my.ini or my.cnf 中的
[mysqld]
添加 event_scheduler=1
或者 event_scheduler=ON
注意:这种方法在重启mysql之后也不会失效,意思是每次开启Mysql服务器就会将event_scheduler=ON运行一遍
定时任务功能的关闭:
SET GLOBAL event_scheduler = 0;
或者:SET GLOBAL event_scheduler = OFF;
就会将定时任务功能关闭
理解:关闭定时任务功能后,你之前创建的定时任务就不会再运行了
定时任务功能的定义:
一个示例:
DROP EVENT IF EXISTS event_test;
CREATE EVENT event_test
ON SCHEDULE EVERY 1 day STARTS date_add(concat(current_date(), ' 03:00:00'), interval 0 second)
ON COMPLETION PRESERVE ENABLE
DO
insert into test values(2,20);
解释:
ON SCHEDULE
- ON SCHEDULE 计划任务,有两种设定计划任务的方式:
1. AT 时间戳,用来完成单次的计划任务。
2. EVERY 时间(单位)的数量时间单位[STARTS 时间戳] [ENDS时间戳],用来完成重复的计划任务。
STARTS date_add(concat(current_date(), ' 00:00:00'), interval 0 second) 指定定时任务开始的时间为今天的03:00:00,那么之后应该每天凌晨执行
[ON COMPLETION [NOT] PRESERVE]
ON COMPLETION参数表示"当这个事件不会再发生的时候",即当单次计划任务执行完毕后或当重复性的计划任务执行到了ENDS阶段。而PRESERVE的作用是使事件在执行完毕后不会被Drop掉,建议使用该参数,以便于查看EVENT具体信息。[ENABLE | DISABLE]
参数Enable和Disable表示设定事件的状态。Enable表示系统将执行这个事件。Disable表示系统不执行该事件。
可以用如下命令关闭或开启事件:
ALTER EVENT event_name ENABLE/DISABLE[COMMENT 'comment']
注释会出现在元数据中,它存储在information_schema表的COMMENT列,最大长度为64个字节。
'comment'表示将注释内容放在单引号之间,建议使用注释以表达更全面的信息。
定时任务的查看:
SHOW EVENTS;