当前位置: 首页 > 知识库问答 >
问题:

如何在Postgres表上使用ecto获得独占锁?

韩喜
2023-03-14

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

谢谢

共有1个答案

谢清野
2023-03-14

使用<code>LOCK</code>:

LOCK my_table IN EXCLUSIVE MODE;

请注意,< code >锁表只能在事务块中使用。

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

 类似资料:
  • 我有以下功能,由多个进程同时使用。但是我有时会在插入操作中遇到重复错误。我认为这是锁的问题,所以我改成了 ACCESS EXCLUSIVE 锁,但这不好,因为它锁定了整个桌子。使用共享行独占模式似乎可以正常工作,但我对性能和访问有一些疑问。其他进程将能够访问该表?与前一个锁相比,此锁更慢(行独占)?

  • 当我登录时,我们可以在Youtube网站顶部看到基于我的Youtube历史记录的个性化推荐视频。现在,我正在尝试使用Youtube数据API v3在Youtube上获取推荐视频。 据我所知,在YouTube API v2中有一个API来获取推荐视频列表,但在v3中被弃用,如下所示: 视频推荐 YouTube数据API (v2)功能:检索视频推荐 v3 API不会检索仅包含为当前API用户推荐的视频

  • 问题内容: 这是一个很棒的工具,但我似乎无法让表格显示每列的完整宽度。我看不到整个标题,有时可能会很长。 这是我所拥有的: 但是除非我手动调整大小,否则列标题是部分隐藏的。关于如何显示列的整个宽度的任何想法,以便我可以看到整个标题? 问题答案: 设置属性后立即调用。

  • 我试图在@Singleton SessionBean(EJB 3.1)中获取TransactionManager来控制我的事务范围,因为我必须通过@PostConstruct方法访问数据库。如果发生异常,我不能让容器回滚,因为它会引发TransactionRolledbackException:setRollbackOnly,只从单例后期构造方法中调用。 我正在使用JTA数据源并定义@Transa

  • 我正在用Django模板的两个勺子制作一个Django应用程序。得到这个Heroku错误,我的Postgres生产设置关闭了吗? > 操作错误/无法连接到服务器:连接被拒绝服务器是否运行在主机“localhost”(127.0.0.1)上并接受端口5432上的TCP/IP连接? 异常位置: 工头开工良好 procfile: local.py设置: DATABASES={'default':{'en

  • 问题内容: 如何在postgres中找到月份的最后一天?我有一个以(YYYYMMDD)格式存储为numeric(18)的日期列,我正在尝试使用以下方式使它成为日期 然后找到该日期的最后一天: 但这给了我这个错误: 有什么帮助吗? Postgres版本: 问题答案: 只需使用last_day函数: PS:现在,我相信您知道为您自己的问题选择正确的标签非常重要!