Bạn không cần bất kỳ LOCK
rõ ràng nào đi vào bế tắc. Đây là một bản demo rất đơn giản từ đầu chỉ với INSERTs:
create table a(i int primary key);
create table b(i int primary key);
Phiên # 1 thực hiện:
begin;
insert into a values(1);
Sau đó, phiên # 2 thực hiện:
begin;
insert into b values(1);
insert into a values(1);
-- here it goes into waiting for session #1 to finish its transaction
Sau đó, phiên # 1 thực hiện:
insert into b values(1);
Và sau đó bế tắc xảy ra:
Điều tương tự cũng có thể xảy ra với các CẬP NHẬT đơn giản hoặc kết hợp CẬP NHẬT và CHÈN.