收藏本页 | 设为主页 | RSS
LOGO

我就上乐乐吧

MySQL5.1.x版本中引入了一项新特性EVENT,顾名思义就是事件、定时任务机制,在指定的时间单元内执行特定的任务,因此今后一些对数据定时性操作不再依赖外部程...

您当前的位置:首页 » 技术杂萃
全站公告
重要提示!

本站收集各类美图,以无LOGO原汁原味图为主!欢迎大家交流。
怕失联,请认准如下地址:
微博:传送门
土豆:传送门
电报:传送门
微信:superimagelove
花瓣:传送门
Q群1:231151757
Q群2:583138281
文件解压密码:593668.com
热心赞助

站内搜索
 
相关文章
热门文章
热搜词组
文章归档
友情链接
MySQL新特性EVENT使用详解

发布日期:2013-01-15  关键词: MySQL

MySQL5.1.x 版本中引入了一项新特性 EVENT ,顾名思义就是事件、定时任务机制,在指定的时间单元内执行特定的任务,因此今后一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。此功能是对 Oracle 的 Job/Schedule 的模仿, 5.1.X 版本以上才支持。

创建 EVENT 语法如下:
CREATE [DEFINER = { user | CURRENT_USER }]
EVENT [IF NOT EXISTS]
event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE | DISABLE ON SLAVE]
[COMMENT ''comment'']
DO sql_statement;
附加说明:
event_name:为事件名
schedule:
AT timestamp [+ INTERVAL interval] | EVERY interval [starTS timestamp [+ INTERVAL interval]] [ENDS timestamp [+ INTERVAL interval]]
其中:
timestamp是指定特定时间
INTERVAL是指相隔多久时间
EVERY是指每秒/分/天/周/月/年等
STARTS和ENDS则是指定该事件的执行开始和结束时间。
interval则使用:数字 {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}
DO sql_statement:则是您具体想要执行的SQL语句。
[ON COMPLETION [NOT] PRESERVE] 可以设置这个事件是执行一次还是持久执行,默认为 NOT PRESERVE 。
[ENABLE | DISABLE] 可是设置该事件创建后状态是否开启或关闭,默认为 ENABLE 。
[COMMENT ‘ comment ’ ] 可以给该事件加上注释。

注意:
默认 EVENT 支持是没有启动的,您可以通过下面的命令来查看状态:
Select @@event_scheduler;
如果返回 OFF ,则需要执行下面的命令启动:
SET GLOBAL event_scheduler = ON;

上面虽然启动了 EVENT ,但是每次重启 mysql 之后 EVENT 并没有自动启动,让它自动启动有如下两种办法
方法一:找到当前使用的 .cnf 文件,在 [mysqld] 的下面加入如下行
event_scheduler=ON
方法二:直接在启动命令加上“–event_scheduler=1” 参数
mysqld ... --event_scheduler=1
最后,还有删除事件操作,语法也很简单。
DROP EVENT [IF EXISTS] event_name

记住:
删除时如果事件不存在,将会产生ERROR 1513 (HY000): Unknown event错误,因此最好加上IF EXISTS。

猜您喜欢:
Q群: 231151757微信:superimagelove 官网:www.593668.com