MySQL事务的默认隔离级别:可重复读;
现象:
1:假设有两个进程A和B,同时读取了同一行数据name的初始值都是200,B开启事务对200减50,尚未提交事务;
2,此时A重新读取name数值,肯定还是200而不是150,因为B尚未提交,此时如果在代码层面对name进行减50然后进行update,会有什么问题呢?
答案:此时数据库的值就会产生错误值150,减了两次,为什么还是150呢?
原因:由于MySQL的事务默认隔离级别是可重复读,A开启事务之后,A不论select多少次,此时读的数据并