使用MySQL显式锁定给定行

时间:2013-07-12 18:03:53

标签: mysql

是否可以使用MySQL在给定行上获得显式的独立锁?

我想要的是:

  • 读一行,获取锁定;如果该行已被锁定,请等待锁定被释放
  • 执行一些处理
  • 写下行,然后释放锁

我认为SELECT FOR UPDATE是我的解决方案,但由于它需要明确的交易,我不能做以下事情:

  1. 阅读&锁定第1行
  2. 阅读&锁定第2行
  3. 做点什么......
  4. 写作&发布第2行
  5. 做点什么......
  6. 写作&发布第1行
  7. (或转换步骤4和6。)

    基本上,我希望能够明确获得&在任何时候释放任何行的锁定,而不必等待使用COMMIT同时释放所有锁定。因此,没有交易就可以做到这一点。

    使用MySQL可以实现吗?

1 个答案:

答案 0 :(得分:0)

使用两个事务(跨两个数据库连接);或者,use triggers to make your records read-only