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;