Saya akan sangat antusias untuk ditampilkan salah (saya kadang-kadang membutuhkan ini sendiri juga), tetapi yang terbaik yang saya ketahui, merujuk nama kolom menggunakan variabel adalah salah satu kasus di mana Anda benar-benar perlu menggunakan pemicu PL/C daripada PL/ pemicu PgSQL. Anda akan menemukan contoh pemicu tersebut di contrib/spi dan di PGXN.
Atau, beri nama kolom Anda secara konsisten sehingga dapat merujuknya secara langsung, mis. NEW.tenant_code
.
Secara pribadi, saya biasanya menulis fungsi yang membuat pemicu:
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;