RE: [GENERAL] How to get seq after insert - Mailing list pgsql-general

From Michael J Davis
Subject RE: [GENERAL] How to get seq after insert
Date
Msg-id 93C04F1F5173D211A27900105AA8FCFC1453EF@lambic.prevuenet.com
Whole thread Raw
List pgsql-general
Cool!!!  I did not know this.  Thanks for verifying how this works.  I will
change my application to use currval instead of nextval.

    -----Original Message-----
    From:    Ross J. Reedstrom [SMTP:reedstrm@rice.edu]
    Sent:    Tuesday, April 20, 1999 10:33 AM
    To:    pgsql-general@postgreSQL.org
    Subject:    Re: [GENERAL] How to get seq after insert

    Michael J Davis wrote:
    >
    > If two users insert into the same table at the same time, one of
the users
    > will get the wrong currval back.  I still believe that getting the
nextval
    > first is the safest way.  It may create holes when an insert
fails, but this
    > is better than getting back the wrong curval.

    No, as Herouth pointed out, currval is multiuser-safe: it returns
the
    last value given in the current session, and every user get's their
own
    session. I just tried it out in two psql sessions to a test sequence
-
    no matter how many calls to nextval I do in one window, the currval
in
    each gives the write answer.

    Ross

    >
    >         -----Original Message-----
    >         From:   Herouth Maoz [SMTP:herouth@oumail.openu.ac.il]>
    >         To make a long story short, the best way is to let the
insert
    > statement use
    >         the defaulet, and then use currval( 'seq_name' ). This
gives you the
    > last
    >         value given in the current session. It is multiuser-safe,
etc.
    >

    --
    Ross J. Reedstrom, Ph.D., <reedstrm@rice.edu>
    NSBRI Research Scientist/Programmer
    Computer and Information Technology Institute
    Rice University, 6100 S. Main St.,  Houston, TX 77005

pgsql-general by date:

Previous
From: "Ross J. Reedstrom"
Date:
Subject: Re: [GENERAL] How to get seq after insert
Next
From: JT Kirkpatrick
Date:
Subject: TUPLES <> HEAP