事务不是一致的吗,为什么开启事务后还是单条sql顺序执行,如果是模拟转账的话,那两者的钱就会有问题,该怎么解决呢,还是我操作不对。

img

img


事务不是一致的吗,为什么开启事务后还是单条sql顺序执行,如果是模拟转账的话,那两者的钱就会有问题,该怎么解决呢,还是我操作不对。

在start transaction前面加上
set autocommit =0; //关闭自动提交

你是不是开启自动提交事务了,关闭了再测试

balance2是什么?是不是写错了

看界面,你使用的应该是 navicat 工具对么,你检查一下你的navicat配置,这个软件默认是配置的自动commit 的,为了避免操作人员锁表的应该,你把这个配置去掉,再试一下。 :)

看阴影 是只选择了2条update语句去执行,没有选择手动开启事务,那么就是用的自动提交;
第一句sql正常修改,提交;
第二句sql报错,不影响前面已执行的