MySQL:40---事件与调度器

    xiaoxiao2022-07-13  155

    调度器

    概念:一个变量,只有打开了调度器,所有事件才能运行。事件调度器默认是关闭的,所以使用事件前需要开启调度器

    查看事件调度器

    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;
    最新回复(0)