2016-10-03 3 views
2

Ich habe einen Ereignisauslöser, der bei Erstellen, Ändern und Löschen Tabelle ausgeführt wird.Get Tabellenname im Ereignisauslöser

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

Innerhalb der Prozedur möchte ich einen Trigger für die neu erstellte Tabelle erstellen.

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

Wie kann ich den Tabellennamen innerhalb des Ereignisauslösers erhalten?

Ich versuchte TG_TABLE_NAME mit als here erklärt, aber es scheint, dass dies funktioniert nur auf Nicht-Ereignis-Trigger.

Antwort

3

Sie müssen die Ereignisauslösungs-Informationsfunktionen verwenden, die in the documentation beschrieben sind.

+0

Oh ich war in der 9.4 Dokumentation dieser Seite und sah gerade, dass es erweitert wurde, beginnend mit 9.5. Dank dafür. – ChrisB