Re: How to update rows from a cursor in PostgreSQL

Поиск
Список
Период
Сортировка
От Ruben
Тема Re: How to update rows from a cursor in PostgreSQL
Дата
Msg-id 3E58BE33.4060007@superguai.com
обсуждение исходный текст
Ответ на How to update rows from a cursor in PostgreSQL  (Ruben <ruben12@superguai.com>)
Ответы Re: How to update rows from a cursor in PostgreSQL
Список pgsql-general
Thanks a lot Tom:

Shouldn't it be better then to use "oid" instead of ctid?

Ruben.



Tom Lane wrote:
> Ruben <ruben12@superguai.com> writes:
>
>>Since "FOR UPDATE" cursors are not supported in PostgreSQL, can I update
>>the current row of table t1?
>
>
> The usual hack for this is to select the table's "ctid" system column as
> part of the cursor output, and then say
>
>     UPDATE t1 SET ... WHERE ctid = 'what-you-got-from-the-cursor';
>
> This is quite fast because the ctid is essentially a physical locator.
> Note however that it will fail (do nothing) if someone else has already
> updated the same row since your transaction started.  This may or may
> not be what you want.  I think ODBC has some hack to find the ctid of
> the latest version of the row.



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

Предыдущее
От: Thomas Beutin
Дата:
Сообщение: Re: troubles with postgresql
Следующее
От: Oliver Elphick
Дата:
Сообщение: Re: transactions