选择 打开 改范围 完整检索页
开发版本: 19 / devel
当前 PostgreSQL 版本不在支持生命周期内。
您可以参阅当前版本手册首页的对应页面,或其他在上面列出的活跃大版本。

44.6. 事件触发器函数 #

PL/Python 可用于定义事件触发器(另见Chapter 38)。 PostgreSQL 要求,被作为事件触发器调用的函数必须声明为无参数且返回类型为event_trigger的函数。

当函数被用作事件触发器时,字典TD包含与触发器相关的值:

TD["event"]

触发器被触发的事件,字符串形式,例如ddl_command_start

TD["tag"]

触发器被触发时对应的命令标签,字符串形式,例如DROP TABLE

Example 44.1给出了一个PL/Python 事件触发器函数的示例。

Example 44.1. 一个PL/Python事件触发器函数

这个示例触发器会在每次执行受支持的命令时简单地发出一条NOTICE消息。

CREATE OR REPLACE FUNCTION pysnitch() RETURNS event_trigger
LANGUAGE plpython3u
AS $$
  plpy.notice("TD[event] => " + TD["event"] + " ; TD[tag] => " + TD["tag"]);
$$;

CREATE EVENT TRIGGER pysnitch ON ddl_command_start EXECUTE FUNCTION pysnitch();