Как оказалось транзакции не блокируют таблицу или записи (ряды), поэтому возможна ситуация когда часть одной транзакции перекроет другую (в update, например, при параллельном исполнении). Поэтому приходится блокировать,так как заблокировать ряды не получается, то блокируем всю таблицу:
LOCK TABLE "MyTable" IN EXCLUSIVE MODE;
Не идеальное решение с точки зрения скорости, но решение, которое гарантирует, что транзакции будут выполняться только последовательно, и не перекроют друг друга.
Свежие комментарии