事件触发器
可获得性
本特性自openGauss 5.0.0版本开始引入。
特性简介
支持事件触发器,允许捕获DDL操作并做相应处理。
客户价值
典型使用场景是:通过事件触发器捕获DDL操作和目标对象,来实现数据同步。
特性描述
事件触发器支持捕获当前数据库下的ddl操作以及ddl操作的目标对象(事件触发器不支持捕获对共享对象的操作,例如database、role与tablespace)。 事件触发器允许捕获ddl_command_start、ddl_command_end、sql_drop、table_rewrite四类事件。
- ddl_command_start事件在CREATE、 ALTER、DROP、SECURITY LABEL、 COMMENT、GRANT或者REVOKE等 命令的执行之前发生。在事件触发器引发前不会做受影响对象是否存在的检查。
- ddl_command_end事件捕获ddl操作,在ddl执行后发生。
- sql_drop事件捕获任何删除数据库对象的操作,在ddl_command_end之前执行。
- table_rewrite事件在表仅在被命令ALTER TABLE和 ALTER TYPE的某些动作重写之前发生。
特性约束
- 仅在PG兼容模式下可用。
- 新增、删除、修改事件触发器都需要系统管理员权限。
- 事件触发器相关内置函数仅可用于事件触发器函数(返回类型为event_trigger)
依赖关系
无。