# 44.7.PL/Tcl中的事件触发器函数

事件触发函数可以用PL/Tcl编写。PostgreSQL要求作为事件触发器调用的函数必须声明为不带参数且返回类型为的函数事件触发.

触发器管理器的信息通过以下变量传递给函数体:

$TG_活动

触发触发器的事件的名称。

$TG_标签

为其触发触发器的命令标记。

触发器函数的返回值被忽略。

下面是一个简单的事件触发函数示例,它只会引发注意每次执行支持的命令时的消息:

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 FUNCTION tclsnitch();