Deadlocks no PostgreSQL ao executar o UPDATE
Estou um pouco confuso lendo sobre deadlocks do PostgreSQL.
Um típico exemplo de impasse é:
<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>
Mas e se eu mudar o código da seguinte forma:
<code>-- Transaction 1 UPDATE customer SET ... WHERE id IN (1, 2) -- Transaction 2 UPDATE customer SET ... WHERE id IN (1, 2) </code>
Será uma possibilidade de impasse aqui?
Essencialmente, minha pergunta é:No segundo caso, o PostgreSQL bloqueia as linhas uma a uma ou bloqueia todo o escopo coberto pelaWHERE
condição?
Desde já, obrigado!