Re: Dynamically accessing columns from a row type in a trigger

Поиск
Список
Период
Сортировка
От jian he
Тема Re: Dynamically accessing columns from a row type in a trigger
Дата
Msg-id CACJufxHVWB+0-qZOwryOZ4Usx2N5u68JMKxsqjCfzK-3ud=FCg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Dynamically accessing columns from a row type in a trigger  ("Rhys A.D. Stewart" <rhys.stewart@gmail.com>)
Ответы Re: Dynamically accessing columns from a row type in a trigger
Список pgsql-general
On Sun, Aug 13, 2023 at 11:27 AM Rhys A.D. Stewart
<rhys.stewart@gmail.com> wrote:
>
> Hey Adrian,
>
> Thanks for your response. I don't think I explained myself clearly.
> pk_col is not the column name. pk_col is a variable that holds the
> name of a column. This is one trigger for several tables with varying
> structures. So pk_col would be a column specific to the current
> TG_TABLE_NAME when the trigger is invoked. This is why in my example I
> had to use EXECUTE to get the value of the pk_col from OLD.
>
> Actually, now that I'm thinking about it, I don't really want to store
> the value into a variable because the pk_col might be of any given
> type. So ideally, I'd love a way to just get the value from OLD and
> use it directly in another query. Something along the lines of:
>
> `EXECUTE format('SELECT * FROM %1$I.sometable WHERE pk = $1', myschma)
> USING OLD['pk_col']`.
>
> I reckon I may have to look at just generating a trigger function per
> table, or maybe look into using TG_ARGS.
>

google lead me to this post:
https://stackoverflow.com/questions/55245353/access-dynamic-column-name-of-row-type-in-trigger-function

> table, or maybe look into using TG_ARGS.
maybe  you are referring to TG_ARGV.

example of TG_ARGV =>
https://git.postgresql.org/cgit/postgresql.git/tree/src/test/regress/expected/triggers.out



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

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: Dynamically accessing columns from a row type in a trigger
Следующее
От: Marc Millas
Дата:
Сообщение: Re: pb with big volumes