Deadlock se pojavi, ko dve (ali več) transakciji vsaka drži zaklepanje, ki ga potrebuje druga, zato nobena ne more napredovati — sta obeploščeni v čakanju drug na drugega v neskončnost. Baze podatkov zaznajo deadlock-e in jih razrešijo z prekinitvijo ene transakcije ("žrtve"), ki jo je treba znova poskusiti. Razumevanje vzrokov in preprečevanja je pomembno za sočasne aplikacije.
Kako se pojavi deadlock
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;
