| From: | "Adam O'Toole" <adamnb1(at)hotmail(dot)com> | 
|---|---|
| To: | pgsql-general(at)postgresql(dot)org, pgsql-novice(at)postgresql(dot)org | 
| Subject: | Re: INSERT INTO from a SELECT query | 
| Date: | 2005-07-13 16:05:17 | 
| Message-ID: | BAY102-F25E5A15CD7AA297D185641FBDE0@phx.gbl | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general pgsql-novice | 
I solved it. The statment worked as is, I just had to use dynamic SQL (put 
the statement in a string and the EXECUTE the string). Here is what I did:
CREATE FUNCTION test(varchar)  RETURNS int2 AS'
DECLARE
   id_list ALIAS FOR $1;
   query varchar;
BEGIN
   query := '' INSERT INTO history (media_id, media_type) SELECT 
media.media_id, media.media_type WHERE media.media_id IN ( '' || id_list || 
'')'';
EXECUTE query;
Now I can call this function like this
  SELECT test( '24,25,26,27,28,29' );
and it will execute the INSERT statement for each value in the passed 
varchar
-Thanks guys for your input
Adam
| From | Date | Subject | |
|---|---|---|---|
| Next Message | John Tulodziecki | 2005-07-13 16:05:57 | Client-Server Example | 
| Previous Message | Karsten Hilbert | 2005-07-13 15:56:03 | chosing a database name | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Doug Hall | 2005-07-13 20:35:35 | Help! Not enough swap space? | 
| Previous Message | Tino Wildenhain | 2005-07-13 13:58:34 | Re: INSERT INTO from a SELECT query |