BEGIN WORK;
LOCK TABLE objects IN EXCLUSIVE MODE;
...
UPDATE "objects" SET "status" = "..." FROM "list" WHERE "list"."uuid" = "objects"."uuid"
COMMIT WORK;
BEGIN WORK;
LOCK TABLE objects IN EXCLUSIVE MODE;
...
UPDATE "objects" SET "x" = "...", "y"="..." FROM "list" WHERE "list"."uuid" = "objects"."uuid"
COMMIT WORK;
В каждый момент времени только один процесс будет иметь возможность писать в таблицу.
8 мая 2013 г., 2:34 пользователь Dmitry E. Oboukhov <unera@debian.org> написал:
> Сортировка поможет.
приписал в обоих запросах ORDER BY "uuid". как сыпались дедлоки так и продолжают сыпаться. постгря - 9.1.2
очень не хочется лочить таблицу вообще перед групповой записью.