mysql InnoDB 的行锁

时间:2024-01-07 12:44:20

表的引擎类型必须为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 = '' 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;