From: | "Phil Endecott" <spam_from_postgresql_sql(at)chezphil(dot)org> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | plpgsql - Insert from a record variable? |
Date: | 2004-06-11 14:42:09 |
Message-ID: | 4899937@chezphil.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Dear Postgresql experts,
I'm writing a simple plpgsql function that selects a row from a table, modifies it slightly, and inserts the modified version. This sounds simple, but I can't find how to do the insert in a simple generic fashion: although SELECT has a form that puts the result in a record variable, INSERT doesn't seem to have anything similar.
What I'd like to be able to write is something like this:
DECLARE
R RECORD;
BEGIN
SELECT * INTO R FROM TABLE WHERE id=n;
R.something := x;
INSERT INTO TABLE R;
END
But as far as I can see the only syntax that is allowed for INSERT is the normal INSERT INTO TABLE (x,y,z) VALUES (a,b,c). To achieve what I want to do I'd need to iterate over the fields of the record (how?) and build up the string of the INSERT query.
It seems odd that SELECT can use a record variable but INSERT can't, so I wonder if I have missed something. Any suggestions?
Thanks in advance for any help anyone can offer.
Regards,
--Phil.
From | Date | Subject | |
---|---|---|---|
Next Message | Achilleus Mantzios | 2004-06-14 13:34:44 | Re: Datetime problem |
Previous Message | Martin Knipper | 2004-06-11 14:23:22 | pg_dump inside function (was: Re: (No Subject)) |