GBASE8Aevent使用方法
事件是在相应的时刻调用的过程式数据库对象,一个事件可调用一次,也可以周期性的启动,由特定线程,事件管理器来管理
事件由两个部分组成,第一部分是事件调度:表示事件何时启动以及按照什么频率启动,第二部分是事件动作:这是事件启动时执行的代码,事件的动作包含sql语句,可能是一个简单的insert或update,也可以是存储过程或begin...end块,这两种情况允许执行多条sql
一个事件可以打开或关闭,打开意味着事件I’m调度器检查事件动作是否必须调用,关闭意味着事件的声明存储在目录中,但调度器不会检查它是否应该调用。创建事件后它就是打开的,一个打开的事件可以执行一次或多次
事件调度器(event_scheduler):他会不断监视一个事件是否需要调用,想创建事件,必须打开调度器
开启事件调度器有两种办法
一:命令
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
二:修改配置文件gbase_8a_gbase.cnf来开启
vim /opt/10.10.10.1/gnode/config/gbase_8a_gbase.cnf
event_scheduler = 1 #或者 ON
关闭事件调度器
同样可以使用如上方法关闭 只需改为0或off即可
创建语法
CREATE [DEFINER = { user | CURRENT_USER }] EVENT
[IF NOT EXISTS] <event_name>
ON SCHEDULE <schedule>
[ON COMPLETION [NOT] PRESERVE]
[ENABLE |
DISABLE]
[GLOBAL | LOCAL]
[COMMENT 'comment']
DO event_body;
创建事件时不支持load语句
event不支持存过,自定义函数,触发器等对象的创建
例:创建立即启动事件
create event event_now on schedule at now() do insert into lianxi.t1 values(4);
创建每分钟执行一次
create event event_1minute on schedule every 1 minute do insert into lianxi.t1 values(5);
每分钟都会执行一次插入一条数据
查看事件 show events; 查看当前数据库事件
修改事件
ALTER
EVENT event_name
[ON SCHEDULE schedule]
[ON COMPLETION [NOT] PRESERVE]
[RENAME TO new_event_name]
[ENABLE | DISABLE]
[COMMENT 'comment']
[DO event_body]
参数设置跟创建时一样
例 :
将事件改为每30秒
alter event event_minute1 on schedule every 30 second do insert into lianxi.t1 values(5);
修改事件名
alter event 原事件名 rename to 新事件名
alter event event_minute1 rename to event_30second;
修改事件活动与不活动
alter event event_30second disable 不活动
alter event event_30second enable 活动
删除事件
drop event 事件名
drop event event_30second
评论
热门帖子
- 12025-12-01浏览数:182764
- 22023-05-09浏览数:25062
- 42023-09-25浏览数:18526
- 52020-05-11浏览数:17529