Re: Last insert id

Поиск
Список
Период
Сортировка
От Richard Huxton
Тема Re: Last insert id
Дата
Msg-id 40C6BABD.6060204@archonet.com
обсуждение исходный текст
Ответ на Last insert id  (mixo <mixo@coza.net.za>)
Список 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 по дате отправления:

Предыдущее
От:
Дата:
Сообщение: Re: Last insert id
Следующее
От: Richard Huxton
Дата:
Сообщение: Re: returning a recordset from PLpg/SQL