GBase 8a
运维管理
文章

GBase8a_EVENT事件

发表于2025-11-08 11:37:1635次浏览1个评论

事件(event)是在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”。

事件和触发器类似,都是在某些事情发生的时候启动。当数据库上启动一条语句的时候,触发器就启动了,而事件是根据调度事件来启动的。由于他们彼此相似,所以事件也称为临时性触发器。

    每条create event语句创建一个事件。每个事件由两个主要部分组成,第一部分是事件调度(event schedule),表示事件何时启动以及按什么频率启动;第二部分是事件动作(event action),这是事件启动时执行的代码,事件的动作包含一条SQL语句,它可能是一个简单的INSERT或者UPDATE语句,也可以是一个存储过程或者BEGIN...END语句块,这两种情况允许执行多条SQL。

    一个事件可以是活动(打开)的或停止(关闭)的,活动意味着事件调度器检查事件动作是否必须调用,停止意味着事件的声明存储在目录中,但调度器不会检查它是否应该调用。在一个事件创建之后,它立即变为活动的,一个活动的事件可以执行一次或者多次。

 

一、事件调度器
 

    事件调度器event_scheduler负责调用事件,它默认是打开的。这个调度器不断地监视一个事件是否要调用, 要创建事件,必须打开调度器。

gbase> SHOW VARIABLES LIKE '%event_scheduler%';

+-----------------+-------+

| Variable_name   | Value |

+-----------------+-------+

| event_scheduler | ON    |

+-----------------+-------+

1 row in set (Elapsed: 00:00:00.00)

评论

登录后才可以发表评论
用户头像
GBase用户28017发表于 8个月前
学习。