We have several trigger functions that all do a similar thing: get the
next value from a sequence and assign the value to the primary key
column of a table before insert. I thought I would combine all these
into a single trigger function that takes the sequence name and column
name as input parameters. Here is what I have so far, which does *not*
work:
CREATE OR REPLACE FUNCTION assign_seq() RETURNS trigger AS $$ BEGIN NEW.TG_ARGV[1] := (select
TG_ARGV[0].NEXTVAL); RETURN NEW; END;
$$ LANGUAGE plpgsql;
It complains about the "." after NEW. If I remove that argument and
hard-code a column name, it works. That is, it allows the dynamic
sequence name in the select.
Can I do what I'm trying to do? Or will I just have to code separate
trigger functions for each table? Thanks.
--
Guy Rouillier