首页 > 解决方案 > 如何使用 Ecto 在 Postgres 表上获得排他锁?

问题描述

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

谢谢!

标签: postgresqlelixirecto

解决方案


使用LOCK

LOCK my_table IN EXCLUSIVE MODE;

请注意,LOCK TABLE只能在事务块中使用。

另请参阅如何将原始 sql 与 ecto Repo 一起使用


推荐阅读