Re: Last insert id - Mailing list pgsql-sql

From Richard Huxton
Subject Re: Last insert id
Date
Msg-id 40C6BABD.6060204@archonet.com
Whole thread Raw
In response to Last insert id  (mixo <mixo@coza.net.za>)
List pgsql-sql
mixo wrote:
> I have three tables which are related a serial field, table1_id, in on 
> of the tables. Updating the tables is done through a transaction. My 
> problem is, once I have insert  a row in the first tables with 
> table1_id, I need for the other two tables. How can I get this? Is it 
> safe to use "select max(table1_id) from table1" after the insert?

A SERIAL column is just an ordinary integer with a default of 
nextval(<sequence-name>).

All you need to do is:
INSERT INTO t1 (...) VALUES (...)
INSERT INTO t2 (...) VALUES (currval(<sequence-name-from-table1>)...)

Sequences are guaranteed to give values relevant to your current connection.

--   Richard Huxton  Archonet Ltd


pgsql-sql by date:

Previous
From:
Date:
Subject: Re: Last insert id
Next
From: Richard Huxton
Date:
Subject: Re: returning a recordset from PLpg/SQL