关于mysql事务的一个疑问

Laravel

关于mysql事务的一个疑问

窗口1开启事务
窗口二删除id为2的数据
在去窗口1查询这条数据查不到
mvcc版本控制好像没起作用
我发现必须是窗口1开启事务后在事务里执行select语句后mvcc版本控制才起作用(隔离级别设置的可重复读)

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 5

看下事务级别

11个月前 评论
彭彭 (楼主) 11个月前

可重复读是快照读,快照不是开启事务时就生成的,而是执行第一条语句才生成。如果想开启事务时生成快照,可以用start transaction with consistent snapshot

11个月前 评论

mvcc解决不了当前读

11个月前 评论

你要看你 窗口 1 的delete id=1是在 窗口二之间执行还是之后, 在事务里面进行了dml操作后, 快照会更新

11个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!