Качановский Дмитрий wrote:
а насколько атомарен вот такой
Выше уже говорили, что термин "атомарность" имеет несколько другое значение.
update some_table set counter = counter + 1 where id = :id
т.е. насколько гарантировано, что если оператор прочитал данные и решил их
менять, какова вероятность, что кто-нибудь другой (в конкурирующей
транзакции) не изменит данные (согласись, что даже ооочень короткие операции
могут выполниться одновременно) и что в этом случае произойдет
Update conflict, вестимо.
а еще вот, вот такая конструкция
for select id ....
from some_table
order by id ....
do
update some_table set counter = counter + 1 where id = :id
как она воспринимается сервером
1. получение курсора и последовательность самостоятельных вызовов update
Именно так.
--
Дмитрий Еманов