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

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: Dynamically accessing columns from a row type in a trigger
Дата
Msg-id 068f5479-5b58-6084-1141-fd320b722782@aklaver.com
обсуждение исходный текст
Ответ на 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 8/12/23 13:09, Rhys A.D. Stewart wrote:
> Greetings all,
> 
> I am writing a trigger and would like to know how to dynamically
> access a column from the "OLD" variable. pk_col is the column name
> from the table.
> 
> I've come up with either doing this:
> EXECUTE format('SELECT $1.%1$I', pk_col) INTO pk_val USING OLD;

Got focused on pk_val = OLD[pk_col] and missed the low hanging fruit:

pk_val = OLD.pk_col

> 
> which looks a bit excessive, or this
> 
> pk_val = to_jsonb(OLD.*)->pk_col
> 
> which looks cleaner, but then I am having to incur a little overhead
> by using the to_jsonb function. Ideally, something like this would be
> great:
> 
> pk_val = OLD[pk_col]
> 
> but evidently we can't subscript ROW types.
> 
> Am I missing out on a simpler or more elegant solution?
> 
> Rhys
> Peace & Love | Live Long & Prosper
> 
> 

-- 
Adrian Klaver
adrian.klaver@aklaver.com




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

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: Dynamically accessing columns from a row type in a trigger
Следующее
От: Miles Elam
Дата:
Сообщение: Re: A Good Beginner's Book