Re: Currval question and confusion - Mailing list pgsql-novice

From Michael Fuhr
Subject Re: Currval question and confusion
Date
Msg-id 20050305200523.GA70847@winnie.fuhr.org
Whole thread Raw
In response to Currval question and confusion  (Kumar S <ps_postgres@yahoo.com>)
List pgsql-novice
On Sat, Mar 05, 2005 at 11:40:47AM -0800, Kumar S wrote:

> Now 3 people have simultaneously issued insert
> statements. After some time while the second process
> is still filling table 1 and enters table2 the currval
> position has been changed. Then will I be assigning a
> wrong FK in table2 and table3.

Are you asking if there's a problem, or are you saying you've
observed a problem?  currval() is documented to return the most
recently obtained value *in the current connection*, so if each
process uses a different connection then you shouldn't have a
problem.  Connection pooling could interfere with this, however,
if it allows queries from different processes to be interleaved on
the same connection.  In that case you could call nextval() prior
to the inserts and remember the key values on the client side.

http://www.postgresql.org/docs/8.0/interactive/functions-sequence.html
http://www.postgresql.org/files/documentation/faqs/FAQ.html#4.11.3

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

pgsql-novice by date:

Previous
From: Kumar S
Date:
Subject: Currval question and confusion
Next
From: Kumar S
Date:
Subject: background jobs