首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使在提交之后,MySQL也不显示更新的数据

问即使在提交之后,MySQL也不显示更新的数据
EN

Stack Overflow用户
提问于 2016-04-18 14:18:03
回答 1查看 234关注 0票数 3

我正在使用两个窗口,因为我想实现事务的概念。

Window1:begin;

Window1:update employee set salary = 45000 where ssn = '123456789';

Window2:begin;

Window2:select * from employee where ssn = '123456789';

在这里,这个命令向我展示了之前正确的数据。

Window1:commit;

Window2:select * from employee where ssn = '123456789';

在这里,我应该得到45000的最新工资。但是我的窗口2只显示了之前的数据。我在哪里做错了?

EN

回答 1

Stack Overflow用户

发布于 2016-04-18 14:33:06

你的期望是错误的,仅此而已。事务从彼此的工作中看到什么是由所谓的transaction isolation levels决定的。mysql默认使用repeatable read isolation level,即:

如果事务隔离级别是可重复读取(默认级别),则同一事务中的所有一致读取都将读取该事务中第一个此类读取所建立的快照。

您可以将隔离级别更改为read committed,以启用您期望的行为:

具有READ COMMITTED隔离级别的

,事务内的每个一致读取都设置并读取其自己的最新快照。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36686695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档