Thank you very much, Laurenz Albe.

On Mon, Jun 10, 2013 at 9:21 AM, Albe Laurenz <laurenz.a...@wien.gv.at>wrote:

> Gustavo Amarilla Santacruz wrote:
> > In the PostgreSQL documentation I found "currval: Return the value most
> recently obtained by nextval
> > for this sequence in the current session ...."
> >
> > In other documentations (pgpool, for example), I found "Connection
> Pooling
> > pgpool-II saves connections to the PostgreSQL servers, and reuse them
> whenever a new connection with
> > the same properties (i.e. username, database, protocol version) comes
> in. It reduces connection
> > overhead, and improves system's overall throughput"
> >
> > Then, I have the following question: PostgreSQL differentiates between
> sessions created for the same
> > user?
> >
> > Background
> > ==========
> > - I, traditionalmente, have several user in a web application (user
> table, for example); but I use
> > only one postgresql-db-user to get connetions to database
> >
> > - If a CREATE (CRUD) operation uses a head-detail couple of tables, then
> in a transaction: data in
> > HEAD table is inserted; next, the value for the primary key is achieved
> from currval function; next
> > references to head table is inserted in detail table.
>
> "currval" will return a different value or an error message if
> the query happens to use a different session than the one that
> you used for "nextval".
>
> The best way to solve this is the INSERT ... RETURNING statement,
> like in INSERT INTO t VALUES (...) RETURNING id, which will
> return new value of the automatically generated column.
>
> Yours,
> Laurenz Albe
>



-- 
------------------------
Gustavo Amarilla

Reply via email to