两个节点,更新同一条记录,会出现不一致
两个节点,更新同一条记录,会出现不一致
A节点:
begin;
update example set node_name = 'jfy1' where node_id = 1;
在A节点commit前,B节点上:
update example set node_name = 'jfy2' where node_id = 1;
会成功,并且A节点数据也变成了'jfy2',这明显不对
然后这时A再commit,也成功了,AB两节点数据又都变成了'jfy1'
这种覆盖是很危险的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不是,这个是我的错误
是因为A节点上:
begin;
update example set node_name = 'jfy1' where node_id = 1;
这条name原值就是'jfy1',所以这一条更新是affect row 1,所以实际上是没加锁
看着像没开事务了?。。。