【发布时间】:2011-08-03 21:47:18
【问题描述】:
希望一些比我更聪明的 DBA 可以帮助我找到一个很好的解决方案来解决我需要做的事情。
为了便于讨论,假设我有一个名为“work”的表,其中包含一些列,其中一个列表示来自给定客户的该行工作的所有权。场景是我将连接 2 个客户端并轮询表以完成工作,当出现一行(或一些行)时,选择行的第一个客户端也将更新它们以暗示所有权,即update 将删除这些行,使其不再返回给任何其他客户端的选择。我的问题是,在这种情况下,我可以使用哪种锁定来防止 2 个客户端同时访问表并通过选择返回相同的行?
【问题讨论】:
-
诸如更新工作集所有者 = 客户 ID 的所有者为空返回列之类的查询会以原子方式运行吗?例如:2 个客户端同时发出该查询,他们没有机会操作相同的行?
标签: sql postgresql locking