Getting last inserted SERIAL

From: mgarriss <mgarriss(at)earthlink(dot)net>
To: pgsql-general(at)postgresql(dot)org
Subject: Getting last inserted SERIAL
Date: 2003-09-01 03:40:47
Message-ID: 3F52BFBF.1040301@earthlink.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Given this table:

CREATE TABLE test ( id SERIAL, example TEXT );

An implicit sequence is created as show in this message:

NOTICE: CREATE TABLE will create implicit sequence 'test_id_seq' for
SERIAL column 'test.id'

How do I retrieve the last 'id' that was inserted? I have a process
that does an insert and then needs the value of the id column of the row
it just inserted so that that row can be used later in processing.
First thought is "SELECT CURRVAL('test_id_seq');" but this assumes that
there is only one connection inserting into this table, bad assumption.
Next idea is the make 'id' an INT4 and set it explicitly with a value
that I select from an explicitly created sequence. This method seems a
bit inelegant. Any ideas?

TIA
Michael Garriss

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Bruce Momjian 2003-09-01 03:57:10 Re: About GPL and proprietary software
Previous Message Weiping He 2003-09-01 03:38:58 Re: how to group by a joined query?