6

我有一个在创建、更改和删除表时执行的事件触发器。

create event trigger CustomizeTable
   on ddl_command_end
   when tag in ( 'create table', 'alter table', 'drop table' )
   execute procedure CustomizeTable();

在该过程中,我想在新创建的表上创建一个触发器。

create or replace function CustomizeTable() returns event_trigger as 
$$
begin
      EXECUTE 'create trigger DoAudit after update on XXXXXX...
end;
$$
language plpgsql;

如何在事件触发器中获取表名?

我尝试按照此处的说明使用TG_TABLE_NAME ,但似乎这只适用于非事件触发器。

4

1 回答 1

6

您必须使用文档中描述的事件触发信息功能。

例如,要获取新创建的表的名称,请使用

SELECT objid::regclass
FROM pg_event_trigger_ddl_commands();
于 2016-10-03T14:09:29.460 回答