Deadlocks in PostgreSQL beim Ausführen von UPDATE

Ich bin etwas verwirrt, wenn ich etwas über PostgreSQL-Deadlocks lese.

Ein typisches Deadlock-Beispiel ist:

<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>

Was aber, wenn ich den Code wie folgt ändere:

<code>-- Transaction 1
UPDATE customer SET ... WHERE id IN (1, 2)

-- Transaction 2
UPDATE customer SET ... WHERE id IN (1, 2)
</code>

Wird es hier zu einer Sackgasse kommen?

Im Wesentlichen ist meine Frage:Im zweiten Fall sperrt PostgreSQL die Zeilen einzeln oder sperrt den gesamten Geltungsbereich, der von derWHERE Bedingung?

Danke im Voraus!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage