Re: [Q] Sequences, last_value and inserts

Bruno Wolff III <bruno@wolff.to>

From: Bruno Wolff III <bruno@wolff.to>
To: "Roderick A. Anderson" <raanders@acm.org>
Cc: pgsql-general@postgresql.org
Date: 2002-11-01T20:02:43Z
Lists: pgsql-general
On Fri, Nov 01, 2002 at 11:50:30 -0800,
  "Roderick A. Anderson" <raanders@acm.org> wrote:
> 
> I'm inserting some values into a table with a serial field.  This is being 
> done using Perl and the DBI.  I then pull back using 'last_value' what I 
> hope is the value for the insert. The thought came to mind that if the 
> database is getting hit pretty hard there may be another access of the 
> sequence and last_value will be wrong 'for me'.
>    Question is how do I insure I get the correct last-value?  Enclose in a 
> BEGIN/END block?  (How's that done using Perl? - my DBI book isn't at 
> hand).

You want to use currval. This can be used within a single session safely.