Взаимные блокировки в 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?

Заранее спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос