mysql select for update:未锁定以供读取

时间:2018-02-13 13:58:37

标签: mysql locking

打开2个MySql命令行控制台,并设置autocommit = 0。

console 1 (T1): select * from Employee where id=1 for update;

console 2 (T2): select * from Employee where id=1;
                the result displayed.   // should be locked

尝试选择员工时应锁定T2。对?选择upate。

console 2 (T2): update Employee set name ="FOO" where id=1;
                locked as expected

1 个答案:

答案 0 :(得分:1)

不,您需要使用" LOCK IN SHARE MODE"显式锁定读取查询。

否则,在单独的连接中,读取不会自动锁定在MySQL中。有关更多信息,请参阅:

https://dev.mysql.com/doc/refman/5.7/en/innodb-locking-reads.html

在本文档中,他们提供了一个强制锁定的示例 - 它不是默认锁定。

相关问题