在事件触发器中获取 Table 个名称

Get Table Name in Event Trigger

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

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

在程序中,我想在新创建的 table 上创建触发器。

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

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

我尝试使用 TG_TABLE_NAME 解释 here 但似乎这只适用于非事件触发器。

您必须使用 the documentation 中描述的事件触发信息函数。

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

SELECT objid::regclass
FROM pg_event_trigger_ddl_commands();