Бих бил много ентусиазиран да бъда показан грешно (от време на време аз също имам нужда от това), но най-добре, което знам, препращането към имена на колони с помощта на променливи е един от онези случаи, в които всъщност трябва да използвате PL/C тригери, а не PL/ PgSQL тригери. Ще намерите примери за такива тригери в contrib/spi и в PGXN.
Друга възможност е да наименувате колоните си последователно, за да можете да ги препращате директно, напр. NEW.tenant_code
.
Лично аз обикновено в крайна сметка пиша функция, която създава тригера:
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;