使用迷你更新

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)