Tôi khá nhiệt tình khi bị hiển thị sai (đôi khi bản thân tôi cũng cần điều này), nhưng tốt nhất tôi biết rằng, việc tham chiếu tên cột bằng cách sử dụng các biến là một trong những trường hợp bạn thực sự cần sử dụng trình kích hoạt PL / C hơn là PL / Trình kích hoạt PgSQL. Bạn sẽ tìm thấy các ví dụ về các trình kích hoạt như vậy trong Contrib / spi và trên PGXN.
Ngoài ra, hãy đặt tên cho các cột của bạn một cách nhất quán để có thể tham chiếu trực tiếp đến chúng, ví dụ:NEW.tenant_code
.
Cá nhân tôi thường kết thúc bằng việc viết một hàm tạo trình kích hoạt:
create function create_tg_stuff(_table regclass, _args[] text[])
returns void as $$
begin
-- explore pg_catalog a bit
execute $x$
create function $x$ || quote_ident(_table || '_tg_stuff') || $x$()
returns trigger as $t$
begin
-- more stuff
return new;
end;
$t$ language plpgsql;
$x$;
end;
$$ language plpgsql;