rollback的问题

[复制链接]
查看11 | 回复9 | 2010-12-6 19:50:26 | 显示全部楼层 |阅读模式
a,b都update同一条纪录,但都没有lock。
a update后,没commit;b commit.
然后a rollback,数据会变成什么样子的啊
回复

使用道具 举报

千问 | 2010-12-6 19:50:26 | 显示全部楼层
只要没有commit,该条记录对别的会话来说就不变。
回复

使用道具 举报

千问 | 2010-12-6 19:50:26 | 显示全部楼层
呵呵,怎么能不上锁呢?
回复

使用道具 举报

千问 | 2010-12-6 19:50:26 | 显示全部楼层
原帖由 我上面有人 于 2008-4-10 10:50 发表
只要没有commit,该条记录对别的会话来说就不变。

是不变的。我问如果oracle rollback的话会怎么处理?会不会盖掉b commit的数据?
回复

使用道具 举报

千问 | 2010-12-6 19:50:26 | 显示全部楼层
既然不变,又何来的覆盖啊?
回复

使用道具 举报

千问 | 2010-12-6 19:50:26 | 显示全部楼层
原帖由 2022228 于 2008-4-10 11:03 发表
是不变的。我问如果oracle rollback的话会怎么处理?会不会盖掉b commit的数据?




回复

使用道具 举报

千问 | 2010-12-6 19:50:26 | 显示全部楼层
原帖由 我上面有人 于 2008-4-10 11:04 发表
既然不变,又何来的覆盖啊?

undo段里面的拷贝是b commit前的数据,你说这个回滚怎么做
回复

使用道具 举报

千问 | 2010-12-6 19:50:26 | 显示全部楼层
a b 同时update一条记录是不可能的!
如果a在先,在a commit前,b是不能commit的。
回复

使用道具 举报

千问 | 2010-12-6 19:50:26 | 显示全部楼层
如果是update同一条记录且a先update的话,a没commit,b不可能commit
原帖由 2022228 于 2008-4-10 10:45 发表
a,b都update同一条纪录,但都没有lock。
a update后,没commit;b commit.
然后a rollback,数据会变成什么样子的啊

回复

使用道具 举报

千问 | 2010-12-6 19:50:26 | 显示全部楼层
原帖由 2022228 于 2008-4-10 10:45 发表
a,b都update同一条纪录,但都没有lock。
a update后,没commit;b commit.
然后a rollback,数据会变成什么样子的啊

a update 后会自动上锁的啊 b 这时做update 会一直等待 直到 a commit或rollback后 b才开始执行
b 最后commit 数据是b update 后的结果
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行