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_scheduler=1"

查看现有的事件调度器

   show events;

查看事件调度器的状态

   show processlist;

二、创建事件调度器

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]

AT TIMESTAMP [+ INTERVAL INTERVAL]:只在指定的时间点执行;

EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]:间隔多长时间执行;

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

quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |

WEEK | SECOND | YEAR_MONTH

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

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

DO sql_statement:可以是DML语句、DCL语句或者调用存储过程。

三、修改事件调度器

ALTER EVENT event_name
    [ON SCHEDULE schedule]
    [RENAME TO new_event_name]
    [ON COMPLETION [NOT] PRESERVE]
    [COMMENT ‘comment‘]
    [ENABLE | DISABLE] [DO sql_statement]

四、事件调度器的例子

例1:1分钟后添加数据

create event if not exists eve_test
    ON SCHEDULE AT current_timestamp() + interval 1 minute
    ON COMPLETION PRESERVE
    do
    insert into test_20161107(t_day)
    values(now());

例2:更改成每隔1分钟添加数据

alter event eve_test
    on schedule every 1 minute starts now()
    on completion preserve
    enable
    do insert into test_20161107(t_day)
    values(now());

修改之后使用show events 查看事件调度器的状态;

例3:调用存储过程

 alter event eve_test
    on schedule every 1 minute starts now()
    on completion preserve
    enable
    do call proc_test();

五、删除

DROP EVENT [IF EXISTS] event_name;

时间: 2024-12-26 06:32:01

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

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

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

mysql事件调度器功能

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

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