UPDATE ... RETURNING atomicity

Поиск
Список
Период
Сортировка
От rihad
Тема UPDATE ... RETURNING atomicity
Дата
Msg-id 4BF8C80F.9010501@mail.ru
обсуждение исходный текст
Ответы Re: UPDATE ... RETURNING atomicity  (Grzegorz Jaśkiewicz <gryzman@gmail.com>)
Re: UPDATE ... RETURNING atomicity  (Lew <noone@lewscanon.com>)
Список pgsql-general
Hello,

In this query:
UPDATE foo
SET allocated_to=?
WHERE id=(SELECT MIN(id) FROM foo WHERE allocated_to IS NULL)
    AND allocated_to IS NULL
RETURNING id


Is it guaranteed in any way that there will only be one id allocated and
returned even if multiple clients are executing this query concurrently?
Or is there a possibility that some other client executing this query
(or another query modifying allocated_to) might set allocated_to to
non-NULL and commit right after the inner select finds it as NULL, so
the outer "AND allocated_to IS NULL" will no longer be true, and the
outer query will return nothing?

Thanks.

В списке pgsql-general по дате отправления:

Предыдущее
От: Craig Ringer
Дата:
Сообщение: Re: Full text search on a complex schema - a classic problem?
Следующее
От: David Fetter
Дата:
Сообщение: Re: Moving from Mysql