MySQL 事件调度器

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

首先介绍下语法:

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 | DAY_HOUR | DAY_MINUTE |

DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

说明:中括号中为可选择项,可指定任务执行的频率.通过DO字句指定要执行的具体操作.

创建一个计划任务每个三秒钟想一个表中插入一条测试数据.例子如下:

(1) 创建测试用测试表既:(注意:方才为了模拟数据库密码忘记情况做了以下数据库停止操作,启动的时候大家注意一定要把进程中的 mysqldkill掉否则无法启动.)

接下来创建测试库,本例直接用以前用于测试的表:t_time,创建语句如下:

  

      CREATE TABLE `t_time` (
    `d` date DEFAULT NULL,
    `t` time DEFAULT NULL,
    `dt` datetime DEFAULT NULL,
    `updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘最后更新时
  间‘
 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

(2) 创建事件调度器 event_insert_t_time

(3)  查看创建事件调度器是否成功:出现下图说明创建成功.

(4) 过了几秒查看表中没有数据.

(5) 查看调度器状态看是否为开启状态,(默认为关闭的)

(6) 打开调度器

(7) 查看表中数据

(8) 设计调度器禁用

(9) 如果不用还可以删除调度器命令如下:

drop event  event_insert_t_time;

本文我原版,欢迎转载转载请说明出处.

时间: 2024-10-13 21:36:31

MySQL 事件调度器的相关文章

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事件调度器功能

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

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的事件调度器使用介绍

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的事件调度器

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

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 事件调度

适用于mysql 5.1 及以后版本 1.查看是否开启 show variables like '%scheduler%' 2.查看进程 show processlist 3.事件调度器默认是关闭的,通过下面命令开启 set global event_scheduler=1 4.简单创建一个事件 create event test_1 on schedule every 5 second do insert into test(time,age) values(now(),1) 5.禁止或者删除