Re: Loop plpgsql recordset

From: George Weaver <gweaver(at)shaw(dot)ca>
To: Furesz Peter <fureszpeter(at)srv(dot)hu>, postgres levlista <pgsql-general(at)postgresql(dot)org>
Subject: Re: Loop plpgsql recordset
Date: 2007-01-26 23:40:58
Message-ID: 008e01c741a3$6ee34010$6400a8c0@Dell4500
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thursday, January 25 Furesz Peter wrote:

>How can I loop a PL/PgSQL recorset variable? The example:

> DECLARE
> v_tmp_regi RECORD;
> v_tmp RECORD;
> BEGIN
> SELECT * INTO v_tmp_regi FROM sulyozas_futamido sf WHERE
>sf.termekfajta_id=
> a_termekfajta_id AND sf.marka_id=a_marka_id;
>
> DELETE FROM sulyozas_futamido;
>
> FOR v_tmp IN v_tmp_regi LOOP
> --I would like to work here with the old recordset!
> END LOOP;
> ^^^^^^^^^^^^^^
> -- This is not working !!!
>
> END;

Its difficult to determine what you're trying to accomplish in the loop, but you may want to refer to 37.7.4. Looping Through Query Results in http://www.postgresql.org/docs/8.2/interactive/plpgsql-control-structures.html#PLPGSQL-RECORDS-ITERATING

Note that DELETE FROM sulyozas_futamido; will delete ALL records in sulyozas_futamido!

Perhaps:

FOR v_tmp IN SELECT * FROM sulyozas_futamido sf
WHERE sf.termekfajta_id = a_termekfajta_id AND sf.marka_id=a_marka_id;

LOOP

DELETE FROM sulyozas_futamido WHERE (some condition related to v_tmp???)

Work with old record now in v_tmp

END LOOP;

Regards,
George

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Jaime Casanova 2007-01-26 23:51:17 Re: Ayuda sobre Indices
Previous Message Ron Johnson 2007-01-26 23:36:28 Speaking of upgrades... (was Re: Predicted ...)