|
|
|
|
|
by postgressomethi
784 days ago
|
|
> You might think adding a UNIQUE index would cause the "losing" xact to get constraint errors, but instead both xacts succeed and no longer have a race condition. This is not true. What happens is that the (sub)transaction that loses the race to the index is aborted: =# INSERT INTO foo (bar) (SELECT max(bar) + 1 FROM foo);
ERROR: duplicate key value violates unique constraint "foo_bar_idx"
DETAIL: Key (bar)=(2) already exists.
|
|