如何使用 Ecto 在 Postgres table 上获得独占锁?

How to get an exclusive lock on a Postgres table using Ecto?

我如何锁定整个 Postgres table,这样其他进程就无法更新 table 中的任何行(但仍然可以读取 SELECT 中的行) ? 我认为我想要的锁类型是独占的,但我不确定如何使用 Ecto 查询为整个 table 获取这样的锁。

谢谢!

使用LOCK:

LOCK my_table IN EXCLUSIVE MODE;

注意LOCK TABLE只能在交易块中使用。

另见 How to use raw sql with ecto Repo