Thread: Help pls with UPDATE

Help pls with UPDATE

From
go KEY802207
Date:
Hi, pgsql-general.

  Tell me please, how to update a set of rows using order-
  something like :

  update my_table set counter1=nextval('my_seq') order by counter2 ;



--
Regards,
 Igor                          mailto:go@ugnn.ru


Re: Help pls with UPDATE

From
"Guy Rouillier"
Date:
go KEY802207 wrote:
> Hi, pgsql-general.
>
>   Tell me please, how to update a set of rows using order-
>   something like :
>
>   update my_table set counter1=nextval('my_seq') order by counter2 ;

The way this is usually done is to issue a SELECT with an ORDER BY
clause, then update the rows that are returned.  Many DBMSs have a
SELECT FOR UPDATE and then UPDATE WHERE CURRENT OF CURSOR, but a quick
read of the documentation doesn't list such constructs for PostgreSQL,
so if not you'll need to use separate statements.

--
Guy Rouillier


Re: Help pls with UPDATE

From
Michael Glaesemann
Date:
On Nov 1, 2005, at 13:40 , Guy Rouillier wrote:

> go KEY802207 wrote:
>> Hi, pgsql-general.
>>
>>   Tell me please, how to update a set of rows using order-
>>   something like :
>>
>>   update my_table set counter1=nextval('my_seq') order by counter2 ;
>
> The way this is usually done is to issue a SELECT with an ORDER BY
> clause, then update the rows that are returned.  Many DBMSs have a
> SELECT FOR UPDATE and then UPDATE WHERE CURRENT OF CURSOR, but a quick
> read of the documentation doesn't list such constructs for PostgreSQL,
> so if not you'll need to use separate statements.

I don't know whether this does exactly what you need, but PostgreSQL
does have SELECT FOR UPDATE. Hopefully the docs will be able to
answer whether or not this will helpyou better than I can :)

http://www.postgresql.org/docs/8.0/interactive/sql-select.html#SQL-
FOR-UPDATE


Michael Glaesemann
grzm myrealbox com