Re: How to update rows from a cursor in PostgreSQL - Mailing list pgsql-general

From Shridhar Daithankar
Subject Re: How to update rows from a cursor in PostgreSQL
Date
Msg-id 200302221511.01747.shridhar_daithankar@persistent.co.in
Whole thread Raw
In response to Re: How to update rows from a cursor in PostgreSQL  (Emmanuel Charpentier <charpent@bacbuc.dyndns.org>)
List 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 by date:

Previous
From: Emmanuel Charpentier
Date:
Subject: Re: How to update rows from a cursor in PostgreSQL
Next
From: "kopra"
Date:
Subject: PostgresSQL on cluster server environment