Re: LAST_INSERT_ID equivalent

Erik Price <eprice@ptc.com>

From: Erik Price <eprice@ptc.com>
To: Ericson Smith <eric@did-it.com>
Cc: pgsql-general@postgresql.org
Date: 2003-06-12T19:17:22Z
Lists: pgsql-general

Ericson Smith wrote:
> While many others use currval(), we tend to grab the next ID provided by 
> nextval('seq') and use that to be inserted with the record. The process 
> is very atomic, and the ID is available to be used by the rest of your 
> program. The only drawback is if your insert query fails there will be a 
> hole in the sequence.

So you're saying that you perform a pre-query to fetch the nextval, then 
you include that in your query where you perform the INSERT?  I see. 
Since this is all part of the same transaction, the nextval value won't 
overwrite another simultaneous INSERT, I assume.  This seems like a good 
way to do it too.  I don't mind the holes in the sequence, but wouldn't 
this INSERT cause the sequence to increment the primary key yet again?



Erik