CREATE EVENT TRIGGER
CREATE EVENT TRIGGER — 定义一个新的事件触发器
大纲
CREATE EVENT TRIGGERname
ONevent
[ WHENfilter_variable
IN (filter_value [, ... ]) [ AND ... ] ] EXECUTE { FUNCTION | PROCEDURE }function_name
()复制
描述
CREATE EVENT TRIGGER
创建一个新的事件触发器。
只要指定的事件发生并且与该触发器相关的WHEN
条件(如果有)被
满足,该触发器的函数将被执行。关于事件触发器的一般性介绍可见
第 39 章。创建事件触发器的用户会成为它的拥有者。
参数
name
给新触发器的名称。在该数据库中这个名称必须唯一。
event
会触发对给定函数调用的事件名称。更多事件名称的信息请见 第 39.1 节。
filter_variable
用来过滤事件的变量名称。这可以用来限制触发器只为它支持的那一部分 情况引发。当前唯一支持的
filter_variable
是TAG
。filter_value
与该触发器要为其引发的
filter_variable
相关联 的一个值列表。对于TAG
,这表示一个命令标签列表(例如'DROP FUNCTION'
)。function_name
一个用户提供的函数,它被声明为没有参数并且返回类型
event_trigger
。在
CREATE EVENT TRIGGER
的语法中,关键字CREATE EVENT TRIGGER
和PROCEDURE
是等效的,但是被引用的函数在任何情况下都必须是函数,而不是过程。 此处关键字PROCEDURE
的使用是历史性的,已弃用。
示例
禁止执行任何DDL命令:
CREATE OR REPLACE FUNCTION abort_any_command() RETURNS event_trigger LANGUAGE plpgsql AS $$ BEGIN RAISE EXCEPTION 'command % is disabled', tg_tag; END; $$; CREATE EVENT TRIGGER abort_ddl ON ddl_command_start EXECUTE FUNCTION abort_any_command();复制
兼容性
在 SQL 标准中没有
CREATE EVENT TRIGGER
语句。
文章转载自PostgreSQL全球开发组,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
明明想执行的SQL是DELETE、UPDATE,但为什么看到的是SELECT(FDW的实现原理解析)
小满未满、
402次阅读
2025-03-19 23:11:26
PostgreSQL初/中/高级认证考试(3.15)通过考生公示
开源软件联盟PostgreSQL分会
399次阅读
2025-03-20 09:50:36
9.9 分高危漏洞,尽快升级到 pgAdmin 4 v9.2 进行修复
严少安
305次阅读
2025-04-11 10:43:23
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
284次阅读
2025-04-15 14:48:05
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
243次阅读
2025-04-07 12:14:29
IvorySQL 4.4 发布 - 基于 PostgreSQL 17.4,增强平台支持
通讯员
233次阅读
2025-03-20 15:31:04
PG vs MySQL 执行计划解读的异同点
进击的CJR
167次阅读
2025-03-21 10:50:08
PostgreSQL分区管理扩展——pg_partman
chirpyli
137次阅读
2025-03-19 15:48:31
postgresql+patroni+etcd高可用安装
necessary
128次阅读
2025-03-28 10:11:23
手把手教你在 openKylin 上部署 IvorySQL 4.4
严少安
127次阅读
2025-03-27 20:41:28