mysql 计划任务-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 6315220
  • 博文数量: 162
  • 博客积分: 3600
  • 博客等级: 中校
  • 技术积分: 10366
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-19 11:23
个人简介

专注系统运维、网络架构,研究技术凯发app官方网站的解决方案,记录我的思想轨迹、工作学习、生活和关注的领域

文章分类
文章存档

2014年(2)

2013年(16)

2012年(27)

2011年(117)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: mysql/postgresql

2012-01-06 13:50:08

5.1以上版本支持,先查看数据库是否开启计划认为:

mysql> show variables like ‘%%’;
——————— ——-
| variable_name   | value |
——————— ——-
| event_scheduler | off  |
——————— ——-

 

使用下列的任意一句开启:
set global event_scheduler = on;
set @@global.event_scheduler = on;
set global event_scheduler = 1;   — 0代表关闭
set @@global.event_scheduler = 1;

 

创建event语法:
create event [ if not exists ] event_name
on schedule at|every
[ on completion [ not ] preserve ]
[ enabled | disabled ]        –状态,默认是有效状态。
[ comment 'comment' ]         –注释说明
do sql_statement;

 

主要功能说明:
at 表示指定一个时间只执行一次。
every 周期性计划,可指定计划开始时间 starts 和结束时间 ends,执行具体时间周期可以为:year, month, week, day, hour, minute, second。
completion 完毕后,该计划任务对象是否还在数据库中保留。默认不保留。

 

实例0:
每5分钟删除sms表上面ybmid为空白且createdate距现时间超过5分钟的数据。
use test;
create event event_delnull
on schedule
every 5 minute starts ’2010-07-10 00:00:00′ ends ’2011-02-10 00:00:00′
do
delete from sms where ybmid=” and timediff(sysdate(),createdate)>’00:05:00′;

 实例1:

每天调用存储过程一次:

mysql> delimiter //

mysql> create event updateptoonsunday
    -> on schedule every 1 day
-> do
-> call updatepto();
-> //
query ok, 0 rows affected (0.02 sec)

这里updatepto()是我数据库里自定义的存储过程

 

查看任务计划:
select * from mysql.event\g

 

 

 

更改计划任务
语法:
alter event
[definer = { user | current_user }] #更改缺省用户
event_name
[on schedule schedule]          #更改调度时间
[rename to new_event_name]          #计划任务改名
[on completion [not] preserve]      #更改一次运行结束后的行为
[enable | disable | slaveside_disabled] #更改计划任务状态
[comment 'comment']               #修改注释
[do sql_statement]                     #修改计划执行体

三、删除计划任务
语法:
drop event [if exists] event_name
四、开启计划任务功能支持
中对计划任务的支持是采用线程调度检测计划任务的。要此功能开启计划任务才会执行。查看调度器状态命令如下:
show [full] processlist\g
如下是没有开启的状态:
mysql> show full processlist\g
*************************** 1. row ***************************
id: 10
user: root
host: localhost:4823
db: mysql
command: query
time: 0
state: null
info: show full processlist
1 row in set (0.00 sec)

通过如下全局配置的设置来开启或关闭调度器:
set global event_scheduler = on/off/1/0; –开/关
或set @@global.event_scheduler = on/off/1/0;

五、示例如下:
其中计划任务体内可以是简单语句,也可以调用存储过程

delimiter //
drop event if exists createmonsterevent//
create event createmonsterevent
on schedule every 20 minute
starts current_timestamp interval 10 minute
enable
comment ‘刷怪计划任务’
do
begin
#20分钟
call createmonster(date_sub(sysdate(),interval 24 minute),
date_sub(sysdate(),interval 2 minute));
end;
//

delimiter ;

阅读(18854) | 评论(0) | 转发(7) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图