0

我是新手,merge所以这个问题可能看起来太愚蠢了。

我在跑

MERGE INTO regions r
   USING regions_temp t
   ON (r.id_region = t.id_region)
    WHEN NOT MATCHED THEN INSERT (r.id_region, r.region_name)
     VALUES (t.id_region, t.region_name);

在我运行命令之前,表有以下记录(id_region、region_name):

地区:

1   1   Kiev
2   2   Asia
3   3   Australia
4   4   South America
5   5   Africa

Regions_temp:

1   1   
2   2   Asia
3   3   Australia
4   4   South America

该命令成功运行,但在窗口底部显示0 行已合并且未合并任何记录。

一点帮助?

4

2 回答 2

0
MERGE INTO regions r
   USING regions_temp t
   ON (r.id_region = t.id_region)
    WHEN MATCHED THEN update  set r.region_name =  t.region_name

是我真正需要的

于 2013-06-24T06:34:56.050 回答
0

根据merge_insert_clause 文档

如果 ON 子句的条件为假,merge_insert_clause 指定要插入到目标表列中的值。

由于没有与 in 中Regions_tempid_region记录不匹配的记录Regions,因此没有要合并的行。

于 2013-06-24T06:41:32.377 回答