MySQL的事件调度器
自MySQL5.1.0起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务,可以看作基于时间的触发器。
一、开启
事件调度默认是关闭的,开启可执行
- SET GLOBAL event_scheduler=1;
- SET GLOBAL event_scheduler=ON;
或者在my.ini文件中加上event_scheduler=1
或者在启动命令后加上"-event_scheduler=1"
可以通过如下命令查看是否已开启事件调度器。
- SHOW VARIABLES LIKE 'event_scheduler';
- SELECT @@event_scheduler;
二、创建
- 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]
- INTERVAL:
- quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
- WEEK | SECOND | YEAR_MONTH
event_name:是你要创建的事件名称
schedule:是执行计划,有两个选项,第一是在某一时刻执行,第二是从某时到某时每隔一段时间执行。
INTERVAL:时间间隔,可以精确到秒。
ON COMPLETION [NOT] PRESERVE:结束后是否保存,默认不保存,一旦执行完,事件就被删除了,因此强烈建议此参数设为 ON COMPLETION PRESERVE。
- ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY
是从现在起5日后执行
- ON SCHEDULE AT TIMESTAMP '2012-03-07 12:00:00'
在某一具体时刻执行
- ON SCHEDULE EVERY 1 DAY
- STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
- ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH
5天后开始每天执行,一个月后结束
CURRENT_TIMESTAMP可以用具体时间替换,比如'2012-03-06 18:00:00'
- CREATE EVENT `NewEvent`
- ON SCHEDULE EVERY 1 MONTH STARTS '2012-04-01 00:00:00' ENDS '2100-01-01 00:00:00'
- ON COMPLETION PRESERVE
- ENABLE
- DO
- update tb_test set amount=100 where id=2;;
这是一个完整的例子。
三、修改
- ALTER EVENT event_name
- [ON SCHEDULE schedule]
- [RENAME TO new_event_name]
- [ON COMPLETION [NOT] PRESERVE]
- [COMMENT 'comment']
- [ENABLE | DISABLE] [DO sql_statement]
- ALTER EVENT e_test DISABLE;
关闭e_test事件。
注意,一旦MySQL重启,Disable的事件将全部消失。
四、删除
- DROP EVENT [IF EXISTS] event_name
MySQL的事件调度器的更多相关文章
- mysql事件调度器定时删除binlog
MySQL5.1.6起Mysql增加了事件调度器(Event Scheduler),可以用做定时执行某些特定任务,来取代原先只能由Linux操作系统的计划任务来执行的工作MySQL的事件调度器可以精确 ...
- mysql事件调度器功能
一.前言 自MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录.对数据进行汇总等等),来取代原先只能由操作系 ...
- mysql 事件调度器
1.mysql事件调度器,也就是计划任务,计划做某事,有两种方式: 2.在某个时间点做某事,AT TIMESTAMP [+ INTERVAL INTERVAL] 某个时间点加上偏移. 3.定时地做某事 ...
- MySQL计划任务(事件调度器)(Event Scheduler)
http://www.cnblogs.com/c840136/articles/2388512.html https://dev.mysql.com/doc/refman/5.7/en/events- ...
- mysql事件调度器
#查看mysql事件调度器是否开启 SHOW VARIABLES WHERE Variable_name = 'event_scheduler'; #开启mysql事件调度器功能 SET GLOBAL ...
- MySQL事件调度器event的使用
Q:假设,有一个需求,希望在某一个时刻系统调用一个begin end执行一下:十分钟以后执行一下begin end.亦或有一个需求,每个多长时间周期性执行begin end.那么这个时候该怎么办呢? ...
- mysql事件调度器使用
--设置事件调度器 开启SET GLOBAL event_scheduler = ON; --查看事件调度器 是否开启 on开 off关SHOW VARIABLES LIKE 'event_sche ...
- mysql存储过程游标加计划任务事件调度器
存储过程加事件调度器 -- 存储过程 (多个)游标的使用 临时表的使用(让执行时间从一个小时降低到5分钟)DELIMITER $$ DROP PROCEDURE IF EXISTS `eval_cal ...
- MySQL事件调度器Event Scheduler
我们都知道windows的计划任务和linux的crontab都是用来实现一些周期性的任务和固定时间须要运行的任务. 在mysql5.1之前我们完毕数据库的周期性操作都必须借助这些操作系统实现. 在m ...
随机推荐
- 545D. Queue
http://codeforces.com/problemset/problem/545/D 题意:n个数的服务请求数组,求在其服务时间内,最大的可满足服务的请求数量 首先对服务请求数组按照从小到大排 ...
- 计算机学院2014年“新生杯”ACM程序设计大赛
1440: 棋盘摆车问题 对于输入n,k: 1.当n<k时,无满足的摆法 2.否则 第一个车可以排n*n个位置(即整个棋盘),第二个可排(n-1)*(n-1)个位置,…… 正如排列组合一样,车与 ...
- ibatis2.3中#和$符号的区别(转)
在Ibatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符号#和$之间的区分为,#可以进行与编译,进行类型匹配,而$不进行数据类型匹配,例如: select * from ...
- IE9 JSON未定义
原文:http://social.msdn.microsoft.com/Forums/ie/en-US/fc41127c-0243-4d2e-8e7c-2b311f12e390/ie9-json-no ...
- MySQL数据库的基本操作命令
MySQL数据库的基本操作命令 [mysql]mysql 常用建表语句 一.mysql服务操作 net start mysql //启动mysql服务 net stop mysql //停止mysql ...
- Linux基础--文件与目录管理
1.目录与路径 1)特殊目录 . 代表此层目录 .. 代表上一层目录 - 代表前一个工作目录 ~ 代表『目前使用者身份』所在的家目录 ~account 代表account这个使用者的 ...
- 针对安卓java入门:条件语句和循环语句
条件语句: if(){..} if(){}else{..} if(){..}else if(){..} if(){..}else if(){..}else{..} switch(x){ case x: ...
- WPF之RichTextBox丢失光标仍然选中文本
描述:开发中完成了一个类似于Word的悬浮工具栏功能,选中文本之后可以自动弹出一个工具栏.可以修改字体.字体大小等功能,问题来了,我发现当去进行操作的时候原本选中的RichTextBox的内容的颜色会 ...
- [iOS]利用通知实现监听系统键盘
// // ViewController.m // text // // Created by 李东旭 on 16/1/22. // Copyright © 2016年 李东旭. All rights ...
- iOS:Git分布式版本控制器系统
Git的使用 1.Git简介: Git是一个开源的分布式版本控制系统.与SVN.CVS相比 分布式 不需要中心仓库 Git的版本号都是生成的一个哈希值,比如:bbaf6fb5060b4875b1 ...