【发布时间】:2014-05-16 18:28:30
【问题描述】:
我试图通过锁定和解锁某些行来规避双重写入。
我有一个表personnel,一旦用户尝试编辑一行,我想锁定该行。
所以
BEGIN;
// I guess I have to lock it somehow here
SELECT * FROM personnel WHERE id = 12;
COMMIT;
一旦进行了编辑,我想以相同的样式提交UPDATE:
BEGIN;
//Unlocking
UPDATE personnel SET ...
WHERE id = 12;
COMMIT;
在此期间,当另一个用户尝试编辑同一行时,他会收到一条消息。
【问题讨论】:
-
postgresql.org/docs/9.3/static/sql-select.html 搜索
for update
标签: postgresql concurrency transactions sql-update