在事件触发器中获取 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();
我有一个在创建、更改和删除时执行的事件触发器 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();