因为 mysql 默认事务的隔离级别是“可重复读”,
我有个使用乐观锁的表,每行都有个 version 字段来应用乐观锁,
问题来了:
我开了两个事务,
这两个事务里都需要同时修改了乐观锁的表里的同一行,
由于“可重复读”,version 字段在在同一个事务里前后两次读都一样,
也就是意味这我两个事务里都能改这一行数据成功,
那么两个事务也都能 commit 成功,把这一行数据改了两次,
那么是不是意味这我的乐观锁失效了?
没能阻止这一行数据被改第二次。
我有个使用乐观锁的表,每行都有个 version 字段来应用乐观锁,
问题来了:
我开了两个事务,
这两个事务里都需要同时修改了乐观锁的表里的同一行,
由于“可重复读”,version 字段在在同一个事务里前后两次读都一样,
也就是意味这我两个事务里都能改这一行数据成功,
那么两个事务也都能 commit 成功,把这一行数据改了两次,
那么是不是意味这我的乐观锁失效了?
没能阻止这一行数据被改第二次。