Re: How to update rows from a cursor in PostgreSQL
От | Shridhar Daithankar |
---|---|
Тема | Re: How to update rows from a cursor in PostgreSQL |
Дата | |
Msg-id | 200302221511.01747.shridhar_daithankar@persistent.co.in обсуждение исходный текст |
Ответ на | Re: How to update rows from a cursor in PostgreSQL (Emmanuel Charpentier <charpent@bacbuc.dyndns.org>) |
Список | pgsql-general |
On Saturday 22 Feb 2003 2:08 pm, you wrote: > 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. > > However, it should be noted that this may fail, especially if you work on > views. I've been bitten by this. Just wondering, is updatable views a TODO for postgresql? Shridhar
В списке pgsql-general по дате отправления: