Dynamic column name in pgsql trigger function

Поиск
Список
Период
Сортировка
От Guy Rouillier
Тема Dynamic column name in pgsql trigger function
Дата
Msg-id CC1CF380F4D70844B01D45982E671B2348E5D6@mtxexch01.add0.masergy.com
обсуждение исходный текст
Список pgsql-interfaces
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



В списке pgsql-interfaces по дате отправления:

Предыдущее
От: mjc@comcast.net
Дата:
Сообщение: Can you bind output variables?
Следующее
От: Greg Stark
Дата:
Сообщение: Re: Problem with asynchronous connect in 8.0.1