From: | "Rhys A(dot)D(dot) Stewart" <rhys(dot)stewart(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Dynamically accessing columns from a row type in a trigger |
Date: | 2023-08-12 20:09:56 |
Message-ID: | CACg0vTm8in3pdagru2Y-Q5Ru8UqfgVaqfTiW+kRw0jAj2wWQkw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
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;
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
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2023-08-12 20:22:31 | Re: Dynamically accessing columns from a row type in a trigger |
Previous Message | Amn Ojee Uw | 2023-08-12 13:04:46 | Re: A Good Beginner's Book |