MySQL的事件调度器

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

一、开启

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

[sql] view plaincopy

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

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

[sql] view plaincopy

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

二、创建

[sql] view plaincopy

  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。

[sql] view plaincopy

  1. ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY

是从现在起5日后执行

[sql] view plaincopy

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

在某一具体时刻执行

[sql] view plaincopy

  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‘

[sql] view plaincopy

  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;;

这是一个完整的例子。

三、修改

[sql] view plaincopy

  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]

[sql] view plaincopy

  1. ALTER EVENT e_test DISABLE;

关闭e_test事件。

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

四、删除

[sql] view plaincopy

    1. DROP EVENT [IF EXISTS] event_name
时间: 2024-10-26 05:55:07

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

MySQL的事件调度器使用介绍

MySQL的事件调度器使用介绍 自MySQL5.1.0起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务,可以看作基于时间的触发器. 一.开启 事件调度默认是关闭的,开启可执行 SET GLOBAL event_scheduler=1; SET GLOBAL event_scheduler=ON; 或者在my.ini文件中加上event_scheduler=1 或者在启动命令后加上"-event_scheduler=1" 可以通过

MySQL创建事件调度器

MySQL中的事件调度器,可以用来执行定时任务. 一.开启 事件调度默认是关闭的,开启可执行. 查看事件调度器是否开启:     SHOW VARIABLES LIKE 'event_scheduler';   SELECT @@event_scheduler; 开启事件调度器 SET GLOBAL event_scheduler=1; SET GLOBAL event_scheduler=ON; 或者在my.ini文件中加上event_scheduler=1 或者在启动命令后加上"-event

mysql事件调度器功能

一.前言 自MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录.对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作.更值得 一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精 确到每分钟执行一次.对于一些对数据实时性要求比较高的应用(例如:股票.赔率.比分等)就非常适合. 事件调度器有时也可称为

MySQL 事件调度器

MySQL中的事件调度器是 MySQL 5.1 以后才新增的功能.可以将数据库按照规定的时间周期对数据库做,增加,删除,修改等操作.相当于linux中的无人调度器 crontab(相关crontab的操作请看参看我些的linux的计划任务).避免了一些数据相关的定时任务在业务操作层,减少操作员误操作的风险, 大大缩短了工作量提高工作效率. 首先介绍下语法: CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPL

MySQL事件调度器Event Scheduler

我们都知道windows的计划任务和linux的crontab都是用来实现一些周期性的任务和固定时间须要运行的任务. 在mysql5.1之前我们完毕数据库的周期性操作都必须借助这些操作系统实现. 在mysql5.1及其之后的版本号添加了计划任务的功能(mysql事件调度器Event Scheduler). 事件调度器是定时触发运行的.在这个角度上也能够称作是"暂时的触发器". 触发器仅仅是针对某个表产生的事件运行一些语句.而事件调度器则是在某一个(间 隔)时间运行一些语句.事件是由一个

MySQL事件调度器event的使用

Q:假设,有一个需求,希望在某一个时刻系统调用一个begin end执行一下:十分钟以后执行一下begin end.亦或有一个需求,每个多长时间周期性执行begin end.那么这个时候该怎么办呢? A: 在Linux里面可以使用at.crontab来实现上面的需求:MySQL里面也有这样的方法,就是event对象. 也被称为MySQL事件调度器(Event Scheduler),可以在某一个时间点执行一个SQL语句或一个语句块(BEGIN ... END):或者每隔固定间隔重复执行.类似于Li

MySQL计划任务(事件调度器)(Event Scheduler)[转]

原文链接: http://www.cnblogs.com/c840136/articles/2388512.html MySQL5.1.x版本中引入了一项新特性EVENT,顾名思义就是事件.定时任务机制,在指定的时间单元内执行特定的任务,因此今后一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能. 要查看当前是否已开启事件调度器,可执行如下SQL: SHOW VARIABLES LIKE 'event_scheduler'; 或 SELECT @@event_scheduler

MySQL计划任务(事件调度器)

原文:http://www.cnblogs.com/c840136/articles/2388512.html 备忘; MySQL5.1.x版本中引入了一项新特性EVENT,顾名思义就是事件.定时任务机制,在指定的时间单元内执行特定的任务,因此今后一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能. 要查看当前是否已开启事件调度器,可执行如下SQL: SHOW VARIABLES LIKE 'event_scheduler';或 SELECT @@event_scheduler

mysql数据库事件调度(Event)

mysql中的事件调度器可以定时对数据库增加,删除和执行操作,相当于数据库中的临时触发器,与Linux系统中的执行计划任务一样,这样就可以大大降低工作量. 1.开启事件调度器 [[email protected] ~]# vim /usr/my.cnf         --在配置文件中加入以下语句启用调度器 event_scheduler=1 [[email protected] ~]# /etc/init.d/mysql restart ERROR! MySQL server PID file