That's the hard way.... You'd be better off redefining your table structures so that postgreSQL handles the primary keys automatically...
CREATE TABLE test ( id integer primary key not null default nextval('test_seq'), log varchar(32) NOT NULL, message text ) WITH OIDS; Using this type of table def will automatically create the sequence for you -- and always ge thte next value when you do an insert -- ensuring that you dont have duplicate... so you would: INSERT INTO test ('log', 'message'); then SELECT * FROM test; would give you id, log and message. -- Greg Patnude / The Digital Demention 2916 East Upper Hayden Lake Road Hayden Lake, ID 83835 (208) 762-0762 "Humble Geek" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Hi all. Quick and perhaps silly question, but... > > I am using Pg 7.3. I am writing a function using pgplsql. This function will > perform multiple inserts. Let's say two of the inserts are as follows: > > -- id is primary key > insert into users (id, username) values (nextval('someSeq'),'somename'); > > -- id is also a PK > insert into log (id, uid, message) values (nextval('someOtherSeq'),XXX,'New > Account'); > > Assume XXX is the id from the first insert. How do I get that number? Not > currval('someSeq') - 'cause someone else may have performed an insert - but > the id for that specific insert. > > Thanks, > > HG > > PS: Sorry for the cross-post... > > ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org