mysql InnoDB 的行锁

表的引擎类型必须为InnoDB才可以进行此操作。

 

相关链接:http://www.cnblogs.com/CyLee/p/5579672.html

 

共享锁:单独运行前两句,然后新建一个会话使用第三句、会发现无法使用。然后使用第四句即可解除锁.

注意,必须为where条件所指定的列名添加索引或者本身为主键索引。否则会变成无法实现行锁,而会变成表锁

(PS:表锁的相关链接:http://www.cnblogs.com/CyLee/p/5575152.html)

(PS:表索引的相关链接:http://www.cnblogs.com/CyLee/p/5595100.html)

START TRANSACTION;

SELECT * FROM user_balance WHERE id = '15' LOCK IN SHARE MODE;  

UPDATE user_balance SET user_money = '1000' WHERE id = '15'  

UPDATE user_balance SET user_money = '1000' WHERE id = '16'  

COMMIT;

 

posted @ 2016-06-13 11:19  贝尔塔猫  阅读(211)  评论(0编辑  收藏  举报