Sebuah deadlock berlaku apabila dua (atau lebih) transaksi masing-masing memegang lock yang diperlukan oleh yang lain, jadi tiada satu pun boleh meneruskan — mereka tersekat menunggu antara satu sama lain selama-lamanya. Pangkalan data mengesan deadlock dan menyelesaikannya dengan membatalkan satu transaksi ("mangsa"), yang mesti dicuba semula. Memahami punca dan pencegahannya penting untuk aplikasi serentak.
Bagaimana deadlock berlaku
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.
