Re: PL/pgSQL loops?

Поиск
Список
Период
Сортировка
От Carl van Tast
Тема Re: PL/pgSQL loops?
Дата
Msg-id 9f8a0uccirf0f38ijrdmref7rqeo4tv6vd@4ax.com
обсуждение исходный текст
Ответ на PL/pgSQL loops?  ("Johnny Jørgensen" <pgsql@halfahead.dk>)
Список pgsql-sql
On Wed, 28 Nov 2001 14:49:42 +0000 (UTC), pgsql@halfahead.dk ("Johnny
Jørgensen") wrote:

>  << order_loop >>
>  FOR cur_order IN SELECT * FROM ordre WHERE person_id =3D p_id AND status =
>=3D 1 AND id !=3D o_id
>  LOOP
>   RAISE NOTICE ''outer: %'',cur_order.id;
>
>   << item_loop >>
>   FOR cur_item IN SELECT * FROM item WHERE order_id =3D cur_order_id
>   LOOP
>    RAISE NOTICE ''inner: %'',cur_item.id;
>
>    UPDATE item SET ordre_id =3D o_id WHERE id =3D cur_item.id;
>
>   END LOOP;
>
>   UPDATE ordre SET status =3D 0 WHERE id =3D cur_order.id;
>
>  END LOOP;

Don't know much about LOOPs. But wouldn't this do want you want?
 UPDATE item SET ordre_id = o_id FROM ordre WHERE ordre.id = item.ordre_id AND ordre.person_id = p_id AND ordre.status
=1 AND ordre.id != o_id
 
 UPDATE ordre SET status = 0 WHERE person_id = p_id AND status = 1 AND id != o_id

Kind regards,Carl van Tast


В списке pgsql-sql по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: PL/pgSQL loops?
Следующее
От: Knud Müller
Дата:
Сообщение: Return Opaque / Error in Function