【发布时间】:2016-07-30 12:26:02
【问题描述】:
有没有办法锁定一个表,指定只有具有特定值的插入应该被阻止?
例如,我有表“任务”和表“子任务”,我需要一个操作,当任务关闭时,与其相关且仍处于打开状态的子任务也应该关闭。所以我想:
- 开始交易
- 锁定表子任务但只阻止执行具有给定任务 ID 的插入
- 关闭所有子任务
- 使用乐观锁关闭任务(如果任务版本发生变化,则全部回滚)
- 提交事务
是否可以按照我在第 2 步中描述的操作?如果没有(或者如果有更好的方法),我怎样才能在这种情况下获得安全的并发?
【问题讨论】:
标签: sql database postgresql concurrency locking