Как получить эксклюзивную блокировку на столе Postgres с помощью Ecto? - PullRequest
0 голосов
/ 17 января 2019

Как бы получить блокировку для всей таблицы Postgres, чтобы ни один другой процесс не мог обновить ни одну строку в таблице (но все же мог бы читать строки с помощью SELECT)? Я думаю, что требуемый тип блокировки - ИСКЛЮЧИТЕЛЬНЫЙ, но я не уверен, как получить такую ​​блокировку для всей таблицы, используя запрос Ecto.

Спасибо!

1 Ответ

0 голосов
/ 18 января 2019

Использование LOCK:

LOCK my_table IN EXCLUSIVE MODE;

Обратите внимание, что LOCK TABLE может использоваться только в блоках транзакций.

См. Также Как использовать raw sql с экто репо

...