Взаимные блокировки в PostgreSQL при запуске UPDATE
Я немного запутался, читая о взаимоблокировках PostgreSQL.
Типичный пример тупика:
<code>-- Transaction 1 UPDATE customer SET ... WHERE id = 1 UPDATE customer SET ... WHERE id = 2 -- Transaction 2 UPDATE customer SET ... WHERE id = 2 UPDATE customer SET ... WHERE id = 1 </code>
Но что, если я изменю код следующим образом:
<code>-- Transaction 1 UPDATE customer SET ... WHERE id IN (1, 2) -- Transaction 2 UPDATE customer SET ... WHERE id IN (1, 2) </code>
Будет ли здесь возможность тупика?
По сути мой вопрос:in the 2nd case does PostgreSQL lock rows one-by-one, or lock the entire scope covered by the WHERE
condition?
Заранее спасибо!