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


---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match

Reply via email to