使用迷你更新
Update using minis
你好,如果数据不匹配,我想更新 table2 table 1. 如果下面的查询中有结果,我想更新 table2
Select id, name, desc
From table1
Minus
Select id, name, desc
From table2
Table1
Id, name, desc
1 bob green
2 Sam Blue
Table2
Id, name, desc
1 bob yellow
2 sam b Red
我希望 table2 与 table1
具有相同的数据
Table2
Id, name, desc
1 bob Green
2 Sam Blue
如果您希望 Table2
具有与 Table1
相同的数据,那么我建议截断它并重新插入数据:
truncate table table2;
insert into table2(id, name, desc)
select id, name, desc
from table1;
这个操作通常比一堆更新要快。
编辑:
在 Oracle 中,您可以使用 merge
或将字段设置为:
update table2
set (name, desc) = (select name, desc from table1 where table1.id = table2.id);
如果喜欢可以加:
where (name, desc) <> (select name, desc from table1 where table1.id = table2.id)
你好,如果数据不匹配,我想更新 table2 table 1. 如果下面的查询中有结果,我想更新 table2
Select id, name, desc
From table1
Minus
Select id, name, desc
From table2
Table1
Id, name, desc
1 bob green
2 Sam Blue
Table2
Id, name, desc
1 bob yellow
2 sam b Red
我希望 table2 与 table1
具有相同的数据Table2
Id, name, desc
1 bob Green
2 Sam Blue
如果您希望 Table2
具有与 Table1
相同的数据,那么我建议截断它并重新插入数据:
truncate table table2;
insert into table2(id, name, desc)
select id, name, desc
from table1;
这个操作通常比一堆更新要快。
编辑:
在 Oracle 中,您可以使用 merge
或将字段设置为:
update table2
set (name, desc) = (select name, desc from table1 where table1.id = table2.id);
如果喜欢可以加:
where (name, desc) <> (select name, desc from table1 where table1.id = table2.id)