Re: Fetching generated keys
| От | Tom Lane |
|---|---|
| Тема | Re: Fetching generated keys |
| Дата | |
| Msg-id | 23790.1173134881@sss.pgh.pa.us обсуждение |
| Ответ на | Re: Fetching generated keys (Heikki Linnakangas <heikki@enterprisedb.com>) |
| Список | pgsql-jdbc |
Heikki Linnakangas <heikki@enterprisedb.com> writes:
> 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 meant "currval". In any case the point is that these are
session-local and so Mike's concern is unfounded.
regards, tom lane
В списке pgsql-jdbc по дате отправления: