Re: sequence value of the record just inserted.

From: Ben Kim <bkim(at)coe(dot)tamu(dot)edu>
To: pgsql-admin(at)postgresql(dot)org
Subject: Re: sequence value of the record just inserted.
Date: 2004-04-14 14:34:10
Message-ID: Pine.GSO.4.10.10404140834220.3753-100000@edsun.coe.tamu.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin


Thanks to those who offered help,

The suggested solutions are,
1. Select nextval('myseq'), then use the nextval as the new id to
insert a new record.
2. Insert a new record, then do select currval('myseq') or select last_val
from myseq; supposed to be safe
3. use transaction to guarantee safety

As for solution 2, I wonder what the scope of a "session" is. If I call a
perl subroutine from a web page (the subroutine opens a db handle and
closes it at the end of the subroutine), would it count as one session?
I'll need to check more but would appreciate it if anyone has a ready
advice on this aspect.

Also, in perl DBI, the solutions all require executing at least 2 sql
statements.

I initially hoped there'd be a way to get the oid or sequence number at
the same time as executing an INSERT (one sql statement), like I get oid
in psql. But I use perl DBI, so am not sure how I can get the oid into a
perl variable.

I appreciate the help.

Regards,
Ben Kim

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Joe Maldonado 2004-04-14 14:54:22 Performance tuning for copy in
Previous Message Donald Fraser 2004-04-14 14:28:08 Re: tcl-devel build dependencies for 7.4.2