出现的undo日志问题?

出现的undo日志问题?

http://img1.sycdn.imooc.com//climg/5f68a46c090c0fa519201080.jpghttp://img1.sycdn.imooc.com//climg/5f68a47309f0931419201080.jpg为什么还是3500的啊?

(第二幅图的那个row:0,是因为我又不小心点到了那个运行)

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

http://img1.sycdn.imooc.com//climg/5f695d1809b8e63008310156.jpg

read uncommitted读取未提交的事务,所以在查询时可以读取到3500。如果我的回答解决了你的疑惑,请采纳,祝学习愉快~~~~  

  • 慕python_SD三德 提问者 #1
    第二次运行set ------ 的时候需要运行哪些?是全部运行吗?
    2020-09-22 19:03:48
  • 好帮手慕雪 回复 提问者 慕python_SD三德 #2
    1)设置了read uncommitted读取未提交的事务,在图二中没有commit,所以在图一中查询数据的时候结果是3500;2)set默认是全部运行。另外需要描述你的详细的说明操作步骤,不同的操作步骤,结果是不一样的
    2020-09-22 19:21:39
提问者 慕python_SD三德 2020-09-25 17:53:25

http://img1.sycdn.imooc.com//climg/5f6dbde3094b509a19201080.jpg为什么我一开始提取的数据是king的sal=5000

http://img1.sycdn.imooc.com//climg/5f6dbdfe09f34a3119201080.jpg运行未提交的修改,然后查询,反而得到了3500

  • 因为你第一张图里设置了read uncommitted读取未提交的事务,所以就会让第二张图的3500生效啊。这跟你之前问的问题是一样的。
    2020-09-25 18:18:20
提问者 慕python_SD三德 2020-09-22 20:52:24

先运行

set session transaction isolation level read uncommitted;

start transaction;

select * from t_emp;

commit;

在运行

start transaction;

update t_emp set sal=3500 where sal>3000;

commit;

最后重复查询一下

set session transaction isolation level read uncommitted;

start transaction;

select * from t_emp;

commit;

为什么还是错的呢

  • 这肯定是改为3500了,因为start transaction;update t_emp set sal=3500 where sal>3000;;后都已经commit;提交了,所以一定是3500
    2020-09-23 15:47:26
  • 提问者 慕python_SD三德 回复 好帮手慕雪 #2
    那是不是要删去commit
    2020-09-23 17:47:06
  • 好帮手慕雪 回复 提问者 慕python_SD三德 #3
    你删除也不管用,现在已经修改完毕了。建议同学再好好看一下课程。你也可以重新执行下demo原sql文件后去掉commit后再操作,也不要设置read uncommitted读取未提交的事务。结果就不一样了
    2020-09-23 18:17:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师