Anda tidak memerlukan LOCK
yang eksplisit untuk mengalami kebuntuan. Berikut demo yang sangat sederhana dari awal hanya dengan INSERT:
create table a(i int primary key);
create table b(i int primary key);
Sesi #1 melakukan:
begin;
insert into a values(1);
Kemudian sesi #2 melakukan:
begin;
insert into b values(1);
insert into a values(1);
-- here it goes into waiting for session #1 to finish its transaction
Kemudian sesi #1 melakukan:
insert into b values(1);
Dan kemudian terjadi kebuntuan:
Hal yang sama dapat terjadi dengan UPDATE sederhana atau kombinasi UPDATE dan INSERT. Operasi ini menggunakan kunci implisit, dan jika terjadi di sesi yang berbeda dalam urutan yang berbeda, operasi ini mungkin menemui jalan buntu.