小编典典

PostgreSQL和锁定

sql

希望有一些比我更聪明的DBA,可以帮助我找到所需做的很好的解决方案。

为了便于讨论,假设我有一个名为“
work”的表,其中包含一些列,其中之一是代表来自给定客户端的该行工作的所有权的列。场景是我将连接2个客户端,并轮询一个表以完成工作,当显示一行(或一定数量的行)时,选择该行的第一个客户端也将对其进行更新以暗示所有权,即更新将删除那些返回给其他任何客户选择内容的行。我的问题是,在这种情况下,我可以使用哪种锁定方式来防止2个客户端同时命中该表,并使两个客户端都通过select返回相同的行?


阅读 209

收藏
2021-03-23

共1个答案

小编典典

带有RETURNING子句的UPDATE语句是执行此操作的方法。

UPDATE table
SET ownership = owner
RETURNING ( column list );

参考:

类似问题

文献资料

2021-03-23