PostgreSQL和锁定

use*_*315 2 sql postgresql locking

希望一些比我聪明的DBA可以帮助我找到一个很好的解决方案,我需要做什么.

为了便于讨论,我们假设我有一个名为"work"的表,其中包含一些列,其中一列是表示来自给定客户端的该行工作的所有权的列.方案是我将连接2个客户端并轮询表以完成工作,当一行(或一些行)显示时,选择行的第一个客户端也将更新它们以暗示所有权, update将删除这些行,不会返回任何其他客户端的选择.我的问题是,在这种情况下,我可以使用什么样的锁来阻止2个客户端同时敲击表,并且两个客户端都通过select返回相同的行?

Ket*_*ema 8

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

UPDATE table
SET ownership = owner
RETURNING ( column list );
Run Code Online (Sandbox Code Playgroud)

参考文献:

类似问题

文档