事件触发器

可获得性

本特性自openGauss 5.0.0版本开始引入。

特性简介

支持事件触发器,允许捕获DDL操作并做相应处理。

客户价值

典型使用场景是:通过事件触发器捕获DDL操作和目标对象,来实现数据同步。

特性描述

事件触发器支持捕获当前数据库下的ddl操作以及ddl操作的目标对象(事件触发器不支持捕获对共享对象的操作,例如database、role与tablespace)。 事件触发器允许捕获ddl_command_start、ddl_command_end、sql_drop、table_rewrite四类事件。

  1. ddl_command_start事件在CREATE、 ALTER、DROP、SECURITY LABEL、 COMMENT、GRANT或者REVOKE等 命令的执行之前发生。在事件触发器引发前不会做受影响对象是否存在的检查。
  2. ddl_command_end事件捕获ddl操作,在ddl执行后发生。
  3. sql_drop事件捕获任何删除数据库对象的操作,在ddl_command_end之前执行。
  4. table_rewrite事件在表仅在被命令ALTER TABLE和 ALTER TYPE的某些动作重写之前发生。

特性约束

  • 仅在PG兼容模式下可用。
  • 新增、删除、修改事件触发器都需要系统管理员权限。
  • 事件触发器相关内置函数仅可用于事件触发器函数(返回类型为event_trigger)

依赖关系

无。