自MySQL5.1.0起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务,可以看作基于时间的触发器。

一、开启

事件调度默认是关闭的,开启可执行

  1. SET GLOBAL event_scheduler=1;
  2. SET GLOBAL event_scheduler=ON;

或者在my.ini文件中加上event_scheduler=1
或者在启动命令后加上"-event_scheduler=1"
可以通过如下命令查看是否已开启事件调度器。

  1. SHOW VARIABLES LIKE 'event_scheduler';
  2. SELECT @@event_scheduler;

二、创建

  1. CREATE EVENT [IF NOT EXISTS] event_name
  2. ON SCHEDULE schedule
  3. [ON COMPLETION [NOT] PRESERVE]
  4. [ENABLE | DISABLE]
  5. [COMMENT 'comment']
  6. DO sql_statement;
  7. schedule:
  8. AT TIMESTAMP [+ INTERVAL INTERVAL]
  9. | EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]
  10. INTERVAL:
  11. quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
  12. WEEK | SECOND | YEAR_MONTH

event_name:是你要创建的事件名称

schedule:是执行计划,有两个选项,第一是在某一时刻执行,第二是从某时到某时每隔一段时间执行。

INTERVAL:时间间隔,可以精确到秒。

ON COMPLETION [NOT] PRESERVE:结束后是否保存,默认不保存,一旦执行完,事件就被删除了,因此强烈建议此参数设为 ON COMPLETION PRESERVE。

  1. ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY

是从现在起5日后执行

  1. ON SCHEDULE AT TIMESTAMP '2012-03-07 12:00:00'

在某一具体时刻执行

  1. ON SCHEDULE EVERY 1 DAY
  2. STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY
  3. ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH

5天后开始每天执行,一个月后结束

CURRENT_TIMESTAMP可以用具体时间替换,比如'2012-03-06 18:00:00'

  1. CREATE EVENT `NewEvent`
  2. ON SCHEDULE EVERY 1 MONTH STARTS '2012-04-01 00:00:00' ENDS '2100-01-01 00:00:00'
  3. ON COMPLETION PRESERVE
  4. ENABLE
  5. DO
  6. update tb_test set amount=100 where id=2;;

这是一个完整的例子。

三、修改

  1. ALTER EVENT event_name
  2. [ON SCHEDULE schedule]
  3. [RENAME TO new_event_name]
  4. [ON COMPLETION [NOT] PRESERVE]
  5. [COMMENT 'comment']
  6. [ENABLE | DISABLE] [DO sql_statement]
  1. ALTER EVENT e_test DISABLE;

关闭e_test事件。

注意,一旦MySQL重启,Disable的事件将全部消失。

四、删除

    1. DROP EVENT [IF EXISTS] event_name

MySQL的事件调度器的更多相关文章

  1. mysql事件调度器定时删除binlog

    MySQL5.1.6起Mysql增加了事件调度器(Event Scheduler),可以用做定时执行某些特定任务,来取代原先只能由Linux操作系统的计划任务来执行的工作MySQL的事件调度器可以精确 ...

  2. mysql事件调度器功能

    一.前言 自MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录.对数据进行汇总等等),来取代原先只能由操作系 ...

  3. mysql 事件调度器

    1.mysql事件调度器,也就是计划任务,计划做某事,有两种方式: 2.在某个时间点做某事,AT TIMESTAMP [+ INTERVAL INTERVAL] 某个时间点加上偏移. 3.定时地做某事 ...

  4. MySQL计划任务(事件调度器)(Event Scheduler)

    http://www.cnblogs.com/c840136/articles/2388512.html https://dev.mysql.com/doc/refman/5.7/en/events- ...

  5. mysql事件调度器

    #查看mysql事件调度器是否开启 SHOW VARIABLES WHERE Variable_name = 'event_scheduler'; #开启mysql事件调度器功能 SET GLOBAL ...

  6. MySQL事件调度器event的使用

    Q:假设,有一个需求,希望在某一个时刻系统调用一个begin end执行一下:十分钟以后执行一下begin end.亦或有一个需求,每个多长时间周期性执行begin end.那么这个时候该怎么办呢? ...

  7. mysql事件调度器使用

    --设置事件调度器 开启SET GLOBAL event_scheduler = ON; --查看事件调度器 是否开启 on开  off关SHOW VARIABLES LIKE 'event_sche ...

  8. mysql存储过程游标加计划任务事件调度器

    存储过程加事件调度器 -- 存储过程 (多个)游标的使用 临时表的使用(让执行时间从一个小时降低到5分钟)DELIMITER $$ DROP PROCEDURE IF EXISTS `eval_cal ...

  9. MySQL事件调度器Event Scheduler

    我们都知道windows的计划任务和linux的crontab都是用来实现一些周期性的任务和固定时间须要运行的任务. 在mysql5.1之前我们完毕数据库的周期性操作都必须借助这些操作系统实现. 在m ...

随机推荐

  1. x86虚拟地址到物理地址的映射学习

    这里只谈分页管理的机制,也是目前最重要的内存管理机制. 最初的设计想法: 结构图如下: 页的尺寸是4KB,虚拟地址的前20位用于指定一个物理页,后12位用于访问页内偏移. 页表项的结构: 各个位的含义 ...

  2. IDT hook KiTrap03

    关于idt的基本知识就不进行赘述了,先看一个例子 0 ;------->进入内核,找到中断处理例程KiTrap03 0 这段代码执行,触发3号中断,然后开始执行KiTrap03例程,要知道,执行 ...

  3. AngularJS学习笔记1——什么是AngularJS?

    Angular JS是一个由Google维护的开源的Javascript框架,主要作者为: Misko Hevery(angular JS之父, Sr. Computer Scientist at G ...

  4. angularJS之$watch、$digest和$apply方法

    最近项目上使用了比较多的angular JS,一直都对它感觉比较陌生,总觉得有点反直觉,这段时间,准备下定决心弄明白,这个框架到底是怎么一回事,以及它的工作原理,生命周期……一点一点的啃完它吧.首先, ...

  5. c语言结构体赋值问题

    对于结构体赋值问题: static psl{ int a; char ch; }; 我过去一般会对结构体这样赋值: static psl pslname = { , 'b', }; 记住有一点,‘b’ ...

  6. iOS:自动布局Autolayout

    自动布局:Autolayout 简介: 在以前的iOS程序中,是如何设置布局UI界面的? 经常编写大量的坐标计算代码 为了保证在3.5 inch和4.0 inch屏幕上都能有完美的UI界面效果,有时还 ...

  7. SSIS ->> Reliability And Scalability

    Error outputs can obviously be used to improve reliability, but they also have an important part to ...

  8. 结构体快排qsort()

    曾经用到过一次快排,感觉代码量没有减小,反而比较函数有点难编,但是这种排序一般不会出错(前提是比较函数写对了),而且速度很快,熟练后其实还是非常好用的! 用到快排是因为我做到一个题,是uva的1042 ...

  9. SQLite的介绍 操作Sqlite 具体实例

    1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入  式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能 ...

  10. [分享] VIM 常用命令及游戏练级

    分享一个不错的文章,讲解了 VIM 的常用命令. http://coolshell.cn/articles/5426.html 另,介绍一个可以帮助熟悉VIM命令的练级游戏. 游戏地址:http:// ...