Sebuah deadlock terjadi ketika dua (atau lebih) transaksi masing-masing menahan kunci yang dibutuhkan oleh yang lain, sehingga tidak ada yang dapat melanjutkan — mereka terjebak menunggu satu sama lain selamanya. Database mendeteksi deadlock dan menyelesaikannya dengan menggugurkan satu transaksi ("korban"), yang harus dicoba lagi. Memahami penyebab dan pencegahan adalah penting untuk aplikasi konkuren.
Cara deadlock terjadi
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.
