Zakleszczenia w PostgreSQL podczas uruchamiania aktualizacji
Jestem trochę zdezorientowany czytaniem o zakleszczeniach PostgreSQL.
Typowym przykładem zakleszczenia jest:
-- 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
Ale co, jeśli zmienię kod w następujący sposób:
-- Transaction 1
UPDATE customer SET ... WHERE id IN (1, 2)
-- Transaction 2
UPDATE customer SET ... WHERE id IN (1, 2)
Czy będzie tu możliwość zakleszczenia?
Zasadniczo moje pytanie brzmi:w drugim przypadku blokuje PostgreSQL wiersze jeden po drugim lub blokuje cały zakres objęty przezWHERE
stan?
Z góry dziękuję!