自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. 使用git整体流程

    一.git提交代码走meger请求的整体流程 工作中使用git推代码时,如果走merge请求,那么也就是说拉代码时拉公共代码库的代码,但是提交时需要先提交到自己的代码库,然后在gitlab上提交mer ...

  2. linux下PostgreSQL数据库的源码安装

    实验环境>>>>>>>>>>>>>>>>>>操作系统:CentOS release 6.3 ...

  3. 微软VSS的超级BUG

    发现问题:今天一个新同事,无意中发现他直接就登录进VSS了,并且还是“admin”用户: 解决问题:于是开始在网上找度娘和谷歌帮忙,真是不查不要紧,一查吓一跳,VSS本身就存在这个bug,并且是一个超 ...

  4. lintcode:打劫房屋 III

    题目 打劫房屋 III 在上次打劫完一条街道之后和一圈房屋之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子组成的区域比较奇怪,聪明的窃贼考察地形之后,发现这次的地形是一颗二叉树.与前两次偷窃 ...

  5. Junit单元测试学习笔记一

    我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的.但是,我们同时应该确保每一个函数 ...

  6. Linux文件查找命令find,xargs详述

    目录: 一.find 命令格式 1.find命令的一般形式为: 2.find命令的参数: 3.find命令选项: 4.使用exec或ok来执行shell命令: 二.find命令的例子: 1.查找当前用 ...

  7. php 写入数据到MySQL以及从MySQL获取数据,页面出现乱码的解决方法

    现象如标题. 解决思路: 1确定数据库charset是否是utf-8 a. charset不是utf-8 1, 更改数据库charset为utf-8 ALTER DATABASE db_name DE ...

  8. 压缩工具类 - ZipUtils.java

    压缩工具类,提供压缩文件.解压文件的方法. 源码如下:(点击下载 - ZipUtils.java .FolderUtils.java.ant-1.7.0.jar.commons-io-2.4.jar. ...

  9. Eclipse 下如何删除一个项目的 SVN 信息

    选中项目,右键 - Team - 断开连接 出现如下对话框,根据需要,选择 “删除”或者“不删除”,点击 Yes 即可

  10. GitPython git python 的开发库

    工程地址: https://pypi.python.org/pypi/GitPython/需要安装先安装: gitdb https://pypi.python.org/pypi/gitdb GitPy ...