Re: Fetching generated keys
От | Dave Cramer |
---|---|
Тема | Re: Fetching generated keys |
Дата | |
Msg-id | 6BAEEF62-D85B-4049-8AD8-2BC660B60629@fastcrypt.com обсуждение исходный текст |
Ответ на | Re: Fetching generated keys (Heikki Linnakangas <heikki@enterprisedb.com>) |
Список | pgsql-jdbc |
On 5-Mar-07, at 4:08 PM, Heikki Linnakangas wrote: > Mike Clements wrote: >> Up to now, we were selecting the current value of the sequence >> immediately after the insert. I thought this was safe because >> transactions should be isolated. But now I realize this could >> potentially fail because the default transaction isolation is "read >> committed". Thus if another connection inserts into the same table, >> causing the sequence to increment, if it commits before we read the >> sequence value, we might read the wrong value (the value as >> incremented >> by the other transaction, not the value as it was for our own >> insert). > > You should use the lastval-function. It retrieves the last value > returned in your connection. "SELECT lastval('sequence')" > I think you should be using currval( 'sequence_name') in the same connection. It will not be the wrong one! It does the "right thing". I believe lastval does not allow you to specify the sequence. Dave > -- > Heikki Linnakangas > EnterpriseDB http://www.enterprisedb.com > > ---------------------------(end of > broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings >
В списке pgsql-jdbc по дате отправления: