create table tt1 (id1 int,no1 int);
create table tt2 (id2 int,no2 int);
insert into tt1 values(1,6);
insert into tt1 values(2,7);
insert into tt2 values(1,1);
insert into tt2 values(2,2);
update (select id1,no1,id2,no2
from tt1,tt2
where id1=id2)
set no1=no2
就会报错。
解决方法一。
alter table tt2 add constraint pk_tt2 primary key (id2)
解决方法二。
update (select /*+ BYPASS_UJVC */ id1,no1,id2,no2
from tt1,tt2
where id1=id2)
set no1=no2
BYPASS_UJVC的作用是跳过Oracle的键检查。 这样虽然能够执行了,但是如果谈tt2中存在不唯一的数据,tt1就惨了。