调度器
概念:一个变量,只有打开了调度器,所有事件才能运行。事件调度器默认是关闭的,所以使用事件前需要开启调度器
查看事件调度器
show variables like '%scheduler%';
事件调度器的开启
set global event_scheduler=1/on;
或者在my.ini文件中加:event_scheduler=on/1或者在启动命令上加:-event_event_scheduler=on/1
事件调度器的开关闭
set global event_scheduler=0/off;
查看进程列表:可以查看调度器是否在运行
一、事件的概念
待续
二、事件的定义
CREATE [DEFINER={user | CURRENT_USER}] EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
DO event_body;
DEFINER:用于定义事件执行时检查权限的用户
event_name:指定事件名
ON SCHEDULE schedule:用于定义执行的时间和时间间隔
[ON COMPLETION [NOT] PRESERVE]:事件到期后是否保留。如果加not表示不保留(默认为删除)
[ENABLE | DISABLE | DISABLE ON SLAVE]:用于指定事件的一种属性。其中,关键字ENABLE表示该事件是活动的,也就是调度器检查事件是否必选调用;关键字DISABLE表示该事件是关闭的,也就是事件的声明存储到目录中,但是调度器不会检查它是否应该调用;关键字DISABLE ON SLAVE表示事件在从机中是关闭的。如果不指定这三个选择中的任意一个,则在一个事件创建之后,它立即变为活动的
comment:定义事件的注释
event_body:指定事件启动时所要执行的代码
ON SCHEDULE的形式
有at和every两种形式,例如:
at current_timestamp + interval 1 hour //当前时间一小时后at '2018-09-29 23:59:59' //指定时间
时间单位:year、moth、day、hour、minute、second
三、修改事件
ALTER [DEFINER={user | CURRENT_USER}]
EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT 'comment']
DO event_body;
ALTER EVENT语句与CREATE EVENT语句基本相同
四、禁用、开启事件
禁用事件:
ALTER EVENT event_user ENABLE;
开启事件:
ALTER EVENT event_user DISABLE;
五、查询事件
方式一:
在MySQL中可以通过查询information_schema.events表,查看已创建的事件
SELECT * FROM information_schema.events;
方式二:
show events;
六、删除事件
DROP EVENT [IF EXISTS] event_user;