Нямате нужда от изрично LOCK
да влезе в задънена улица. Ето една много проста демонстрация от нулата само с INSERT:
create table a(i int primary key);
create table b(i int primary key);
Сесия №1 прави:
begin;
insert into a values(1);
Тогава сесия №2 прави:
begin;
insert into b values(1);
insert into a values(1);
-- here it goes into waiting for session #1 to finish its transaction
Тогава сесия №1 прави:
insert into b values(1);
И тогава настъпва задънена улица:
Същото може да се случи с обикновени АКТУАЛИЗАЦИИ или комбинация от АКТУАЛИЗАЦИИ и ВМЪКВАНИЯ. Тези операции изискват имплицитни заключвания и ако се случват в различни сесии в различен ред, може да блокират.