MySQL InnoDB事务+锁定

Mic*_*ael 2 mysql innodb locking transactions

MySQL版本:v5.0.95

基本上,我有一些尝试获取数据的客户端-每个客户端只能获得唯一的行。

START TRANSACTION;

SELECT id where result='new';

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

COMMIT;
Run Code Online (Sandbox Code Playgroud)

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

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

Max*_*sky 5

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