这是一个创建于 1356 天前的主题,其中的信息可能已经有所发展或是发生改变。
事务 A 开始 select 到 id = 1 的一条数据
事务 B 开始 select 到 id = 1 的一条数据
事务 B 继续 将刚才 select 到的数据直接删掉
事务 B 提交 提交后数据库中再也没有 id=1 的数据
事务 A 继续 将刚才 select 到的记录中 name 字段由原来的 xe2v 改为 v2ex
事务 A 提交 提交后数据库中有了 id=1 的数据
请问事务 A 和事务 B 的 ACID 都得到保障了吗?还是只有事务 A 的 ACID 得到保障,事务 B 则没有?
谢谢
2 条回复 • 2020-08-23 10:57:51 +08:00
|
|
1
visitant 2020-08-22 23:07:26 +08:00
事务 B 提交后,事务 A 提交时会报错的。
|
|
|
2
nekolr 2020-08-23 10:57:51 +08:00
就 MySQL 来说,正常情况下,事务 A 在更新的时候会读最新的值,由于值已经被删除并提交,所以更新的影响行数是 0,提交不会出现这种情况。
但就你这个情况来说,事务 B 没啥问题啊,但是事务 A 出现的结果肯定不合适。
|