Re: LAST_INSERT_ID equivalent

Ericson Smith <eric@did-it.com>

From: Ericson Smith <eric@did-it.com>
To: Erik Price <eprice@ptc.com>
Cc: pgsql-general@postgresql.org
Date: 2003-06-12T19:26:55Z
Lists: pgsql-general
No, it would only get the *next* value. Only one increment is performed.

Regards
- Ericson

Erik Price wrote:

>
>
> 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
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster