↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

开发中的版本: 19 / 20devel
预发布版本文档。 PostgreSQL 19beta4 为测试版本,最终发布内容可能有所不同。

44.6. 事件触发器函数 #

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

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

TD["event"]

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

TD["tag"]

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

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

例 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();

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.