打开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
答案 0 :(得分:1)
不,您需要使用" LOCK IN SHARE MODE"显式锁定读取查询。
否则,在单独的连接中,读取不会自动锁定在MySQL中。有关更多信息,请参阅:
https://dev.mysql.com/doc/refman/5.7/en/innodb-locking-reads.html
在本文档中,他们提供了一个强制锁定的示例 - 它不是默认锁定。