调度器
 
概念:一个变量,只有打开了调度器,所有事件才能运行。事件调度器默认是关闭的,所以使用事件前需要开启调度器
 
 
查看事件调度器
 
 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;