是否可以在2个不同的事务上允许同一行上的Oracle 11g多次UPDATE?
例如在第一笔交易中
&a[1][0]
在第二个交易中,更新被第一个锁定。
UPDATE MYTABLE SET COLUMN1 = 'value1'
我需要允许在他们自己的交易中可见的两个更新 在我的上下文中,两个交易都将在最后回滚 它就像是与每个事务相关联的1级缓存,其中所有修改都将被应用并读取直到提交。
答案 0 :(得分:1)
您可以这样做,但您会观察到预期的行为 - 您可能UPDATE
脏的记录,即来自其他会话的交易主题,但您必须等到第一个事务被提交(或回滚)。
所以你的场景将被序列化:
UPDATE from session 1
UPDATE from session 2 is waiting
ROLLBACK from session 1
UPDATE from session 2 is completed
您可以使用此设置对其进行测试:
第1节
create table MYTABLE(column1 varchar2(10));
insert into MYTABLE(column1) values(null);
commit;
UPDATE MYTABLE SET COLUMN1 = 'value1';
select * from MYTABLE;
COLUMN1
----------
value1
第2节
UPDATE MYTABLE SET COLUMN1 = 'value2';
正在等待,直到会话1进行提交或回滚。
答案 1 :(得分:0)
你可以在单个sql.refer我的sql中更新多个列。
UPDATE MYTABLE SET COLUMN1 ='value1',COLUMN1 ='value2'