【问题标题】:MySQL InnoDB Transactions + LockingMySQL InnoDB 事务 + 锁定
【发布时间】:2012-05-09 21:43:38
【问题描述】:

MySQL 版本:v5.0.95

基本上我有客户端尝试获取数据 - 每个客户端应该只获取唯一的行。

START TRANSACTION;

SELECT id where result='new';

UPDATE SET result='old' WHERE id=$id;

COMMIT;

select 语句上的LOCK IN SHARED MODE 仍然让其他客户端读取数据,这似乎是个问题。

基本上我需要选择一次数据,更新,而不是被另一个客户端再次读取。

【问题讨论】:

    标签: mysql transactions locking innodb


    【解决方案1】:

    SELECT FOR UPDATE 将阻止另一次读取,而LOCK IN SHARED MODE 将允许读取,但不允许来自其他客户端的更新

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多