Re: How to dynamically call a column in plpgsql - Mailing list pgsql-novice

From Henshall, Stuart - Design & Print
Subject Re: How to dynamically call a column in plpgsql
Date
Msg-id E2870D8CE1CCD311BAF50008C71EDE8E0506DC76@MAIL_EXCHANGE
Whole thread Raw
In response to How to dynamically call a column in plpgsql  (Sigurdur Helgason <shelgason@yahoo.com>)
Responses Re: How to dynamically call a column in plpgsql
List pgsql-novice

Sigurdur Helgason wrote:
> Hi!
>
> I am trying to fetch a value from a column, where the
> columnname is a value in another column.
>
> See below ..
>
> table constraint_1 (
> ...
> cons_col VARCHAR(15) NOT NULL,
> ...
> )
>
>
> Then in the trigger (written in plpgsql) I want to
> fetch the appropriate column from the NEW record.
> --- trigger --
> bla bla bla...
>
> select cons_col from constraint_1 where bla = bla ...
> -- the_val := NEW.cons_col;
>
> bla. bla .bla.
> return NEW;
> bla bla bla..
> ----
>
> Well I have tried a couple different things .. none
> seem to work. I know that this is possible if the
> trigger is written in C .. but it might be nice to
> know how to do this in plpgsql.
> Anyone out there that knows how to do this?
>
>
I think something like the following should do:
SELECT INTO cl_nm cons_col FROM constrait_1 WHERE ..........
EXECUTE ''SELECT * FROM tbl WHERE '' || quote_ident(cl_nm) || ''=.......'';
the plpgsql docs contain more docs for EXECUTE (such as when to use quote_ident)
hth,
- Stuart

pgsql-novice by date:

Previous
From: Sigurdur Helgason
Date:
Subject: How to dynamically call a column in plpgsql
Next
From: Sigurdur Helgason
Date:
Subject: Re: How to dynamically call a column in plpgsql