GBase 8a
运维管理
文章

GBASE8Aevent使用方法

发表于2024-12-31 10:07:1958次浏览3个评论

事件是在相应的时刻调用的过程式数据库对象,一个事件可调用一次,也可以周期性的启动,由特定线程,事件管理器来管理
事件由两个部分组成,第一部分是事件调度:表示事件何时启动以及按照什么频率启动,第二部分是事件动作:这是事件启动时执行的代码,事件的动作包含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

 

评论

登录后才可以发表评论
崔哥发表于 4个月前
苏溪亭上草漫漫,谁倚东风十二阑。燕子不归春事晚,一汀烟雨杏花寒。
用户头像
levvel发表于 4个月前
进来看看,应该有收获
GBase用户51935发表于 2个月前
三人行必有我师