Preuzimajte lockove u dosljednom globalnom redoslijedu, držite transakcije kratkima, spustite izolaciju gdje je sigurno i ponovite gubitnika kad se deadlock ipak dogodi. Deadlock je ciklus: transakcija A drži redak 1 i čeka redak 2, dok B drži redak 2 i čeka redak 1 — nijedna ne može nastaviti, pa baza ubije jednu.
Ciklus koji morate razbiti
Tx A Tx B
holds row 1 ──── waits ────▶ row 2 (held by B)
▲ │
│ waits │ holds
└────────── row 1 ◀────────────┘
(cycle = deadlock; DB aborts one victim)
