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