Re: Updating cursors

Поиск
Список
Период
Сортировка
От Jan Wieck
Тема Re: Updating cursors
Дата
Msg-id 200009041005.FAA26350@jupiter.jw.home
обсуждение исходный текст
Ответ на Updating cursors  ("Jarmo Paavilainen" <netletter@comder.com>)
Список pgsql-general
Jarmo Paavilainen wrote:
> Hi,
>
> Ive a SELECT cursor which I want to update/delete but postgresql does not
> support these:
>
> UPDATE myTable SET myColumn = 'myValue' WHERE CURRENT OF myCursor
> DELETE myTable WHERE CURRENT OF myCursor

    PostgreSQL  does  not have the concept of updateable cursors.
    And that isn't planned either.

> Does there exist any workaround?
> Or is my syntax wrong?
>
> One workaround would be to get the row id and to be able to update it.
> Something like this:
>
> ... a row is selected and fetched ...
>
> int i = GetRowId( ); // C function that reads a unique row id.
> ExecuteSQL( "UPDATE myTable SET myColumn = 'myValue' WHERE @ROWID = %d",
> i );
> ExecuteSQL( "DELETE myTable WHERE @ROWID = %d", i );
> // ExecuteSQL(...) is a C function that parses and executes the string.

    Right. That'd work and the row ID you're looking for is  it's
    OID.  Up to now, all tables have a system attribute OID, that
    you can explicitly SELECT for such a purpose. Don't forget to
    create an INDEX on the OID if you go and do

        UPDATE yourTable SET yourColumn = 'yourValue'
            WHERE oid = <oid_of_yourRow>;

    Also  don't  forget  that  in  a  concurrent  environment you
    probably want to SELECT ... FOR UPDATE the rows in the  first
    place.

> // Jarmo
>
> PS. I hope Im sending this mail to the right address, if not Im sorry DS.

    pgsql-sql would've been.


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #



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

Предыдущее
От: "Hiroshi Inoue"
Дата:
Сообщение: RE: subselect in CHECK constraint?
Следующее
От: fabrizio.ermini@sysdat.it
Дата:
Сообщение: Instability in copying large quantities of data