希望有一些比我更聪明的DBA,可以帮助我找到所需做的很好的解决方案。
为了便于讨论,假设我有一个名为“ work”的表,其中包含一些列,其中之一是代表来自给定客户端的该行工作的所有权的列。场景是我将连接2个客户端,并轮询一个表以完成工作,当显示一行(或一定数量的行)时,选择该行的第一个客户端也将对其进行更新以暗示所有权,即更新将删除那些返回给其他任何客户选择内容的行。我的问题是,在这种情况下,我可以使用哪种锁定方式来防止2个客户端同时命中该表,并使两个客户端都通过select返回相同的行?
带有RETURNING子句的UPDATE语句是执行此操作的方法。
UPDATE table SET ownership = owner RETURNING ( column list );
参考:
类似问题
文献资料