【发布时间】:2013-07-12 18:03:52
【问题描述】:
是否可以使用 MySQL 在给定行上获得显式、独立的锁定?
我想要的是:
- 读取一行,并在其上获取锁;如果该行已经被锁定,则等待锁定被释放
- 执行一些处理
- 写入行,然后释放锁
我认为SELECT FOR UPDATE 会是我的解决方案,但因为它需要显式事务,所以我无法执行以下操作:
- 读取并锁定第 1 行
- 读取并锁定第 2 行
- 做点什么……
- 写入并发布第 2 行
- 做点什么……
- 写入并发布第 1 行
(或颠倒第 4 步和第 6 步。)
基本上,我希望能够在任何时候显式地获取和释放任何行上的锁,而不必等待使用COMMIT 同时释放所有锁。因此产生了无需交易的想法。
这可以通过 MySQL 实现吗?
【问题讨论】:
标签: mysql