mysql定时任务-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

mysql定时任务

简介: delimiter // -- 确保服务器事件计划开启 set global event_scheduler=1 -- 创建定时任务 like job create event if not exists e_execut_publish_status on schedule every 1 day starts '2015-09-02 01:01:01' com
delimiter //

-- 确保服务器事件计划开启 set global event_scheduler=1
-- 创建定时任务 like job

create event if not exists e_execut_publish_status
  on schedule every 1 day starts '2015-09-02 01:01:01'
  comment '定时任务:每天0点执行,更新t_publish表的c_status'

do
  begin

    call sp_auto_update_publish_status();

  end//

delimiter ;

1 mysql在5.x版本后支持自动定时任务功能

2 设置开启定时任务: set global event_scheduler=1
设置方法A: mysql命令行输入 set global event_scheduler=1
B:在配置文件my.cnf(linux环境)中,[mysqld] 下添加event_scheduler=1/on

3 查看定时任务
查看定时任务是否已经开启: show variables like ‘%event%’;
查看目前系统的定时任务: show processlist/show events;
查看定时任务创建语句:show create event event_name;

4 语法分析
语法:CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT ‘comment’]
DO sql_statement;
说明:event_name :创建的event名字(唯一确定的);
ON SCHEDULE:计划任务
schedule: 决定event的执行时间和频率(注意时间一定要是将来的时间,过去的时间会出错),有两种形式 AT和EVERY
AT timestamp [+ INTERVAL interval] | EVERY interval [STARTS timestamp] [ENDS timestamp]
interval: quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

[ON COMPLETION [NOT] PRESERVE]: 可选项,默认是ON COMPLETION NOT PRESERVE 即计划任务执行完毕后自动drop该事件;ON COMPLETION PRESERVE则不会drop掉 ;

[COMMENT ‘comment’] :可选项,comment 用来描述event;相当注释,最大长度64个字节
[ENABLE | DISABLE] :设定event的状态,默认ENABLE:表示系统尝试执行这个事件, DISABLE:关闭该事情,可以用alter修改

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章