博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mySQL event
阅读量:7197 次
发布时间:2019-06-29

本文共 2183 字,大约阅读时间需要 7 分钟。

  hot3.png

检查有关配置:show variables like '%sche%';

1、开启配置

set global event_scheduler =1;

2、创建定时任务,每天执行1次(on completion preserve代表永久执行)

CREATE EVENT IF NOT EXISTS my_scheduler_task 

ON SCHEDULE EVERY 1 DAY 

on completion preserve

DO 

update orders set statusFlag=2;

show create event my_scheduler_task 

3、更改定时任务,5天执行1次

ALTER EVENT my_scheduler_task ON SCHEDULE EVERY 5 DAY;

4、开启事件

ALTER EVENT my_scheduler_task ENABLE;

5、关闭事件

ALTER EVENT my_scheduler_task DISABLE;

6、删除 事件

DROP EVENT IF EXISTS my_scheduler_task

如何设置执行的时间?

CREATE EVENT test_event ON SCHEDULE EVERY 1 DAY STARTS '2012-09-24 00:00:00' ON COMPLETION PRESERVE ENABLE DO CALL test_procedure();

EVERY 后面的是时间间隔,可以选 1 second,3 minute,5 hour,9 day,1 month,1 quarter(季度),1 year 

 

如果需要每天指定时间运行任务,那就需要指定开始时间和频次,如下所示:

create event shopCartCleanerListener on schedule every 1 day starts '2015-01-01 00:00:00'on completion preserve enable do update shopCart set cart = null;

 

下面给几个实例:

从2013年1月13号0点开始,每天运行一次 

ON SCHEDULE EVERY 1 DAY STARTS '2013-01-13 00:00:00' 

从现在开始每隔九天定时执行:

 ON SCHEDULE EVERY 9 DAY STARTS NOW() ; 

每个月的一号凌晨1 点执行 :

on schedule every 1 month starts date_add(date_add(date_sub(curdate(),interval day(curdate())-1 day),interval 1 month),interval 1 hour); 

每个季度一号的凌晨1点执行 :

on schedule every 1 quarter starts date_add(date_add(date(concat(year(curdate()),'-',elt(quarter(curdate()),1,4,7,10),'-',1)),interval 1 quarter),interval 1 hour); 

每年1月1号凌晨1点执行:

 on schedule every 1 quarter starts date_add(date_add(date(concat(year(curdate()),'-',elt(quarter(curdate()),1,4,7,10),'-',1)),interval 1 quarter),interval 1 hour);

 

查看所有事件:

SHOW EVENTS

查看指定事件的详情:

elect name,body,definer,execute_at,interval_value,interval_field,created,last_executed ,status from mysql.event;

其中body列就是其执行的内容。

 

临时修改事件计划:

可以用脚本来实现

mysql event_scheduler
开启event_scheduler sql指令:
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
相反,关闭event_scheduler指令:
SET GLOBAL event_scheduler = OFF;
SET @@global.event_scheduler = OFF;
SET GLOBAL event_scheduler = 0;
SET @@global.event_scheduler = 0;

修改配置以使服务器重启后生效:

vi /etc/my.cnf

在[mysqld]下添加一行event_scheduler=ON

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/doz/blog/508650

你可能感兴趣的文章
Objective-C中的集合类
查看>>
spring学习笔记(17)数据库配置[1]spring数据连接池详解
查看>>
[翻译] DraggableYoutubeFloatingVideo
查看>>
CAShapeLayer的使用[1]
查看>>
C语言运算符
查看>>
Python监控主机是否存活,并发报警邮件
查看>>
【Q&A系列2】环境管理常见Q&A
查看>>
带有汉字的字符串截断出现半个“汉字”的解决方法-C语言源码
查看>>
github中的登录认证 转自http://www.wojilu.com/Forum1/Topic/2235
查看>>
android中的单选和多选框
查看>>
Vertica “ERROR: Too many ROS containers exist”
查看>>
Windows环境搭建Web自动化测试框架Watir(基于Ruby)
查看>>
【SQL】使用分析函数与关联子查询的比较
查看>>
关于Java中的继承和组合的一个错误使用的例子
查看>>
win8 开发之旅(17) --足球游戏揭秘3
查看>>
设计模式[11]-Visitor
查看>>
诊断 Java 代码: 提高 Java 代码的性能 尾递归转换能加快应用程序的速度,但不是所有的 JVM 都会做这种转换...
查看>>
高可用Hadoop平台-Oozie工作流
查看>>
玩玩图形图像——第一篇:图片灰度化
查看>>
Web Service 消息格式
查看>>