是否可以使用 MySQL 在给定行上获得显式、独立的锁定?
我想要的是:
- 读取一行,并在其上获取锁;如果该行已经被锁定,则等待锁被释放
- 进行一些处理
- 写入行,并释放锁
我认为SELECT FOR UPDATE将是我的解决方案,但因为它需要显式事务,所以我不能执行以下操作:
- 读取并锁定第 1 行
- 读取并锁定第 2 行
- 做一点事...
- 写入和释放第 2 行
- 做一点事...
- 写入和释放第 1 行
(或颠倒第 4 步和第 6 步。)
基本上,我希望能够在任何时候显式地获取和释放任何行上的锁,而不必等待使用COMMIT
. 因此,没有交易就可以做到这一点的想法。
用 MySQL 可以实现吗?