PostgreSQL 9.6.0 手册 | |||
---|---|---|---|
上一页 | 上一级 | 章 42. PL/Tcl - Tcl 过程语言 | 下一页 |
事件触发器过程也可以用 PL/Tcl 编写。PostgreSQL要求能作为事件触发器被调用的过程必须被声明为一个没有参数并且返回类型为event_trigger的函数。
来自于触发器管理器的信息通过下列变量被传递给过程体:
触发器为其引发的事件名。
触发器为其引发的命令标签。
触发器过程的返回值被忽略。
这里是一个事件触发器过程的小例子,它在所支持的命令每次执行时简单地产生一个NOTICE消息:
CREATE OR REPLACE FUNCTION tclsnitch() RETURNS event_trigger AS $$ elog NOTICE "tclsnitch: $TG_event $TG_tag" $$ LANGUAGE pltcl; CREATE EVENT TRIGGER tcl_a_snitch ON ddl_command_start EXECUTE PROCEDURE tclsnitch();