暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a 创建事件

VV_刺头王 2022-04-07
282

语法格式:

CREATE [DEFINER = { user | CURRENT_USER }] EVENT #定义用户为指定用户或当前用户。
[IF NOT EXISTS] <event_name>  #创建的event名字(唯一确定的)。

ON SCHEDULE <schedule> #计划任务,决定event的执行时间和频率(注意时间一定要是将来的时间,过去的时间会出错),有两种形式AT和EVERY。

[ON COMPLETION [NOT] PRESERVE] #默认是ON COMPLETION NOT PRESERVE,即计划任务执行完毕后自动drop该事件;ON COMPLETION PRESERVE 则不会drop掉。

[ENABLE | DISABLE] #设定event的状态,默认ENABLE:表示系统尝试执行这个事件,DISABLE:关闭该事件,可以用alter修改。

[GLOBAL | LOCAL] #GLOBAL表示各节点独占执行,LOCAL表示各节点独立执行。

[COMMENT 'comment' ] #注释,最大长度64 个字节。

DO event_body; #需要执行的sql语句(可以是复合语句)。CREATE EVENT在存储过程中使用是合法的。

其中,

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 }

值得注意的点:

1、创建事件是存储在库内,可以是当前库或指定库;

2、立即执行事件,执行完后,事件会自动删除

,多次调用事件或等待执行事件可查看到;

3、若两个事件同时刻调用,gbase会确定调用他们的顺序,如果要指定顺序,需要确保一个事件至少在上一个事件1s后执行;

4、对于递归调度的事件,结束日期不得提前于开始日期;

5、创建事件时不支持load语句;

6、event不支持procedure、function、trigger等对象的创建。

举例:

创建测试表:
gbase> DROP TABLE IF EXISTS events_list;
gbase> CREATE TABLE events_list(event_name VARCHAR(20) NOT NULL, event_started TIMESTAMP NOT NULL);
创建事件 1(立即启动事件):
CREATE EVENT event_now ON SCHEDULE AT NOW() DO insert into events_list values('event_now', now());
查看事件执行结果:
gbase> select * from events_list;
+------------+---------------------+
| event_name | event_started |
+------------+---------------------+
| event_now | 2017-07-01 04:06:40 |
+------------+---------------------+
创建事件 2(每分钟启动事件):
CREATE EVENT test.event_minute ON SCHEDULE EVERY 1 MINUTE DO insert into events_list values('event_now', now());
查看事件执行结果:
gbase> SELECT * FROM events_list;

+-------------+---------------------+
| event_name | event_started |
+-------------+---------------------+
| event_now | 2017-07-01 04:26:53 |
| event_now | 2017-07-01 04:27:53 |
| event_now | 2017-07-01 04:28:53 |
+-------------+---------------------+

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论