Re: LAST_INSERT_ID equivalent

Bruno Wolff III <bruno@wolff.to>

From: Bruno Wolff III <bruno@wolff.to>
To: Erik Price <eprice@ptc.com>
Cc: Edmund Dengler <edmundd@eSentire.com>, pgsql-general@postgresql.org
Date: 2003-06-12T18:23:15Z
Lists: pgsql-general
On Thu, Jun 12, 2003 at 13:44:16 -0400,
  Erik Price <eprice@ptc.com> wrote:
> 
> 
> Edmund Dengler wrote:
> >Greetings all!
> >
> >I believe
> >   select currval('sequence_name');
> >should satisfy your needs. Within a transaction it will stay the same.
> 
> Ed, thanks, this looks like what I was looking for --
> 
> however, I am concerned by your disclaimer.  Can you explain that a 
> little bit?  I read it to mean "if you try to use this technique within 
> a transaction where you are INSERTing a new record, it will not reflect 
> the new record's ID".  So then in order to determine the new record's ID 
> I would need to use
> 
>   SELECT CURRVAL('sequence_name') + 1;
> 
> within the transaction.

No. You just want to use currval. The comment was referring to other
transactions calling nextval while the transaction of interest is
proceeding.