设为首页 收藏本站
查看: 349|回复: 0

[经验分享] MySQL创建事件调度器

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-8 08:55:55 | 显示全部楼层 |阅读模式
MySQL中的事件调度器,可以用来执行定时任务。
一、开启
  事件调度默认是关闭的,开启可执行。
  查看事件调度器是否开启:
1
2
    SHOW VARIABLES LIKE 'event_scheduler';
  SELECT @@event_scheduler;



  开启事件调度器
  SET GLOBAL event_scheduler=1;
  SET GLOBAL event_scheduler=ON;

  或者在my.ini文件中加上event_scheduler=1
  或者在启动命令后加上"-event_scheduler=1"

  查看现有的事件调度器
1
   show events;



  查看事件调度器的状态
1
   show processlist;



二、创建事件调度器  
1
2
3
4
5
6
CREATE EVENT [IF NOT EXISTS] event_name
    ON SCHEDULE schedule
    [ON COMPLETION [NOT] PRESERVE]
    [ENABLE | DISABLE]
    [COMMENT 'comment']
    DO sql_statement;



schedule:是执行计划,有两个选项,第一是在某一时刻执行,第二是从某时到某时每隔一段时间执行。
    AT TIMESTAMP [+ INTERVAL INTERVAL] | EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]
    AT TIMESTAMP [+ INTERVAL INTERVAL]:只在指定的时间点执行;
    EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]:间隔多长时间执行;
INTERVAL:时间间隔,可以精确到秒。
    quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
    WEEK | SECOND | YEAR_MONTH
event_name:是你要创建的事件名称
ON COMPLETION [NOT] PRESERVE:结束后是否保存,默认不保存,一旦执行完,事件就被删除了,因此强烈建议此参数设为 ON COMPLETION PRESERVE。
DO sql_statement:可以是DML语句、DCL语句或者调用存储过程。
三、修改事件调度器
1
2
3
4
5
6
ALTER EVENT event_name
    [ON SCHEDULE schedule]
    [RENAME TO new_event_name]
    [ON COMPLETION [NOT] PRESERVE]
    [COMMENT 'comment']
    [ENABLE | DISABLE] [DO sql_statement]



四、事件调度器的例子
例1:1分钟后添加数据
1
2
3
4
5
6
create event if not exists eve_test
    ON SCHEDULE AT current_timestamp() + interval 1 minute
    ON COMPLETION PRESERVE
    do
    insert into test_20161107(t_day)
    values(now());



例2:更改成每隔1分钟添加数据   
1
2
3
4
5
6
alter event eve_test
    on schedule every 1 minute starts now()
    on completion preserve
    enable
    do insert into test_20161107(t_day)
    values(now());



   修改之后使用show events 查看事件调度器的状态;
例3:调用存储过程
1
2
3
4
5
alter event eve_test
    on schedule every 1 minute starts now()
    on completion preserve
    enable
    do call proc_test();



五、删除
   DROP EVENT [IF EXISTS] event_name;
   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-297195-1-1.html 上篇帖子: 查看并修改mysql的默认引擎 下篇帖子: 登陆MySQL 5.6.32,不用每次输入密码 mysql_config_editor
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表