Re: How can I use a dynamic column name after NEW. or OLD. in trigger procedure?

Поиск
Список
Период
Сортировка
От Scott Mead
Тема Re: How can I use a dynamic column name after NEW. or OLD. in trigger procedure?
Дата
Msg-id CAKq0gvJDYw26s9_sH8ShUbXvRm3wLgQMjKf2_a4JnxA=OnkROQ@mail.gmail.com
обсуждение исходный текст
Ответ на How can I use a dynamic column name after NEW. or OLD. in trigger procedure?  (Peter Devoy <peter@3xe.co.uk>)
Список pgsql-general
On Tue, Jan 19, 2016 at 5:05 PM, Peter Devoy <peter@3xe.co.uk> wrote:
As part of the extension I am writing I am trying to create a trigger
procedure in which the value of the primary key of the NEW or OLD row
is used. The trigger will be fired by arbitrary tables so the column
name must be dynamic.  Something like:

        pk_column := 'foo_id'; --example assignment only

        EXECUTE 'INSERT INTO  bar (baz) VALUES ($1)'
        USING NEW.quote_literal(pk_column);

Out of desperation I have pretty much brute forced many weird
combinations of quote_literal, quote_ident, ::regclass, || and USING.
Unfortunately, I have not been able to get anything to work so any
help would be very much appreciated.

Thanks for reading


...
    -- Dump into proper partition
    sql := 'INSERT INTO ' || v_ets_destination || ' VALUES ( ($1).*)';

    -- DEBUG
    --RAISE NOTICE 'SQL: %',sql;

    BEGIN
         EXECUTE sql USING NEW;
...
 
--
Scott Mead
Sr. Architect
OpenSCG
PostgreSQL, Java & Linux Experts

Desk   : (732) 339 3419 ext 116
Bridge: (585) 484-8032

http://openscg.com




Peter Devoy


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

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

Предыдущее
От: Vik Fearing
Дата:
Сообщение: Re: How can I use a dynamic column name after NEW. or OLD. in trigger procedure?
Следующее
От: Vik Fearing
Дата:
Сообщение: Re: How can I use a dynamic column name after NEW. or OLD. in trigger procedure?