并发表更新

时间:2012-01-22 02:56:46

标签: oracle

以下更新查询是否始终保持表数据不变?

update mytable set column1 = column1

想知道是否会丢失更新?

最初column1的值为oldValue。有两个事务(t1和t2),t2从t1的中间开始。

t1: update mytable set column1 = 'newValue'

t2: update mytable set column1 = column1

由于t2交易比t1晚开始,所以也比t1晚完成。

问题:将为column1分配什么价值?

1 个答案:

答案 0 :(得分:1)

事务隔离级别是隔离不同事务的内容,如果使用read committed或更高的隔离级别,则不会有任何问题。

顺便说一下,据我所知,你的第一个查询永远不会更新Oracle中的任何记录,即使是“读取未提交”的隔离级别。