Uváznutí (deadlock) nastane, když si dvě (nebo více) transakce navzájem držují zámky, které si potřebují — ani jedna nemůže pokračovat, jsou uváznuté a čekají na sebe navzájem. Databáze detekují uváznutí a vyřeší jej zrušením jedné transakce ("oběť"), která musí být opakována. Pochopení příčin a prevence je důležité pro souběžné aplikace.
Jak se uváznutí tvoří
Transaction A: locks row 1, then wants row 2
Transaction B: locks row 2, then wants row 1
→ A waits for B (to release row 2), B waits for A (to release row 1) → DEADLOCK
Neither can proceed; they're waiting on each other in a cycle.
; ;
accounts .. id; accounts .. id;
accounts .. id; accounts .. id;
