मैं गलत दिखाने के लिए काफी उत्साहित हूं (मुझे कभी-कभी इसकी भी आवश्यकता होती है), लेकिन सबसे अच्छा मुझे पता है, चर का उपयोग करके कॉलम नामों का जिक्र करना उन मामलों में से एक है जहां आपको वास्तव में पीएल/सी ट्रिगर्स का उपयोग करने की आवश्यकता होती है पीएल/ पीजीएसक्यूएल ट्रिगर करता है। आपको ऐसे ट्रिगर के उदाहरण 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;