学习了一下merge into的用法,下面是实验过程
1.创建两张测试表lock1和lock2
create table lock1(id number(3),comm varchar(10));
create table lock2(id number(3),comm varchar(10));
2.对两张表插入测试数据
begin
for i in 1..20 loop
insert into lock1 values (i,'one');
end loop;
end;
--上面这句执行两遍,第二遍将one 改成two
begin
for i in 1..20 loop
insert into lock2 values (i,'two');
end loop;
end;
3.进行merge into 语句操作:
merge into lock1 a --对表lock1进行操作
using lock2 b --将表lock2用作对比表
on (a.id=b.id) --关联条件,id相同
when matched then --当关联条件匹配时 进行update操作对lock1表中的comm不同于lock2表的comm更新为lock2表的comm
update set a.comm=b.comm
where a.comm<>b.comm
4.执行结果
lock1表中的20条comm为one的数据被更新为了表lock2的comm two
1.创建两张测试表lock1和lock2
create table lock1(id number(3),comm varchar(10));
create table lock2(id number(3),comm varchar(10));
2.对两张表插入测试数据
begin
for i in 1..20 loop
insert into lock1 values (i,'one');
end loop;
end;
--上面这句执行两遍,第二遍将one 改成two
begin
for i in 1..20 loop
insert into lock2 values (i,'two');
end loop;
end;
3.进行merge into 语句操作:
merge into lock1 a --对表lock1进行操作
using lock2 b --将表lock2用作对比表
on (a.id=b.id) --关联条件,id相同
when matched then --当关联条件匹配时 进行update操作对lock1表中的comm不同于lock2表的comm更新为lock2表的comm
update set a.comm=b.comm
where a.comm<>b.comm
4.执行结果
lock1表中的20条comm为one的数据被更新为了表lock2的comm two