From: | Scott Chapman <scott_list(at)mischko(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
Cc: | Martijn van Oosterhout <kleptog(at)svana(dot)org>, Andreas Fromm <Andreas(dot)Fromm(at)physik(dot)uni-erlangen(dot)de>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: SQL-question: returning the id of an insert querry |
Date: | 2003-11-10 16:09:29 |
Message-ID: | 200311100809.29103.scott_list@mischko.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Sunday 09 November 2003 10:52, Alvaro Herrera wrote:
> On Sun, Nov 09, 2003 at 10:26:51AM -0800, Scott Chapman wrote:
> > On Sunday 09 November 2003 03:13, Martijn van Oosterhout wrote:
> > > After you've done the insert on the address table, you can use
> > > currval('address_id_seq') (or equivalent) to get the ID. Ofcourse
> > > you have to have used nextval() for the original insert.
> >
> > What if someone else inserts another address before I get the
> > currval? I'm out of luck then, right?
>
> No, currval is concurrency-safe. That's exactly what sequences are
> for.
I just want to clarify what I mean here to make sure I understand this
right. I have a table, A, that has a ID field which defaults to nextval
of a sequence, SA.
Chronological events here:
X inserts a new record into A.
Y inserts a new record into A.
X fetches currval of the SA. What value does X get in this case, the one
from X's insert or Y's?
Scott
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2003-11-10 16:12:59 | Re: SQL-question: returning the id of an insert querry |
Previous Message | Tom Lane | 2003-11-10 15:05:08 | Re: Dynamic expression evaluation |