在MySQL中创建事件调度
2014-04-14 09:05
302 查看
在MySQL5.5之后,可以创建事件调度,具体语法如下:
EVENT
[IF NOT EXISTS]
ON SCHEDULE
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SL***E]
[COMMENT '
DO
AT
| EVERY
[STARTS
[ENDS
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
[/code]
例如:我计划从2014-04-14的17:28分开始每一个星期执行一个命令或事件,这里执行一个存储过程daily().
查看调度器状态:
mysql>show events \G;
禁用某事件调度
mysql>alter event dodaily disable
重启某事件调度
mysql>alter event dodaily enable
删除某事件调度
mysql>drop event dodaily ;
在设置了事件调度后,还要确认MySQL的事件调度器是否有开启,默认是关闭的,用以下命令查询其状态
mysql>show variables like '%scheduler%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | OFF |
+-----------------+-------+
1 row in set (0.00 sec)
开启事件调度器用以下命令:
mysql>set GLOBAL event_scheduler = 1;
mysql>show variables like '%scheduler%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | ON |
+-----------------+-------+
但注意,当你重启MySQL服务时,事件调度器就会自动关闭,以上方法只是暂时开启,若想永久开启,就要修改MySQL的配置文件 (该文件,Linux的在/usr目录my..cnf下,Windows在其安装目录my-default.ini),打开配置文件,在[mysqld]增加以下配置
event_scheduler=ON
保存后,重启MySQL服务:service mysql restart, 那事件调度器就会永久开启了。
CREATE [DEFINER = { [code]user| CURRENT_USER }]
EVENT
[IF NOT EXISTS]
event_name
ON SCHEDULE
schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SL***E]
[COMMENT '
comment']
DO
event_body;
schedule:
AT
timestamp[+ INTERVAL
interval] ...
| EVERY
interval
[STARTS
timestamp[+ INTERVAL
interval] ...]
[ENDS
timestamp[+ INTERVAL
interval] ...]
interval:
quantity{YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
[/code]
例如:我计划从2014-04-14的17:28分开始每一个星期执行一个命令或事件,这里执行一个存储过程daily().
mysql>create event dodaily on schedule every 1 week starts '2014-04-14 17:28:00' on completion preserve enable do call daily();
查看调度器状态:
mysql>show events \G;
禁用某事件调度
mysql>alter event dodaily disable
重启某事件调度
mysql>alter event dodaily enable
删除某事件调度
mysql>drop event dodaily ;
在设置了事件调度后,还要确认MySQL的事件调度器是否有开启,默认是关闭的,用以下命令查询其状态
mysql>show variables like '%scheduler%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | OFF |
+-----------------+-------+
1 row in set (0.00 sec)
开启事件调度器用以下命令:
mysql>set GLOBAL event_scheduler = 1;
mysql>show variables like '%scheduler%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| event_scheduler | ON |
+-----------------+-------+
但注意,当你重启MySQL服务时,事件调度器就会自动关闭,以上方法只是暂时开启,若想永久开启,就要修改MySQL的配置文件 (该文件,Linux的在/usr目录my..cnf下,Windows在其安装目录my-default.ini),打开配置文件,在[mysqld]增加以下配置
event_scheduler=ON
保存后,重启MySQL服务:service mysql restart, 那事件调度器就会永久开启了。
相关文章推荐
- MySQL 事件调度器创建
- MYSQL的基本使用【表的创建和修改、视图、函数、存储过程、触发器和事件调度器】
- MYSQL的基本使用【表的创建和修改、视图、函数、存储过程、触发器和事件调度器】
- 详解MySQL用事件调度器Event Scheduler创建定时任务
- MySQL点滴学习之事件调度器
- mysql 创建事件
- mysql存储过程和函数,事件调度器
- MySQL计划任务(事件调度器)(Event Scheduler)
- 逐步讲解MySQL中定时事件计划的创建
- MySQL 事件调度器(Event Scheduler)
- MySQL计划任务(事件调度器)(Event Scheduler)
- 逐步讲解MySQL中定时事件计划的创建
- MySQL计划任务(事件调度器)(Event Scheduler)
- MySQL 事件调度器(Event Scheduler)
- mysql事件创建
- 使用mysql事件调度器定时删除binlog
- MySQL计划任务(事件调度器)(Event Scheduler)
- mysql创建分区、存储统计、定时事件
- 逐步讲解MySQL中定时事件计划的创建
- Mysql的自动事件调度