Posted by & filed under PostgreSQL.

Как оказалось транзакции не блокируют таблицу или записи (ряды), поэтому возможна ситуация когда часть одной транзакции перекроет другую (в update, например, при параллельном исполнении). Поэтому приходится блокировать,так как заблокировать ряды не получается, то блокируем всю таблицу:

LOCK TABLE "MyTable" IN EXCLUSIVE MODE;

Не идеальное решение с точки зрения скорости, но решение, которое гарантирует, что транзакции будут выполняться только последовательно, и не перекроют друг друга.

Опубликовать в Facebook
Опубликовать в Google Plus

Leave a Reply

You must be logged in to post a comment.