在条件中从其他数据库中插入表中的行

时间:2014-09-10 16:00:30

标签: sql

我有2个数据库,结构相同但数据不同, 我试图将源数据库中的数据插入到目标数据库中,但只有当数据不存在于目标中时(如果存在,我更新它,它已经在工作)。

这就是我现在所做的:

INSERT INTO table
SELECT * FROM table@source
WHERE NOT EXISTS (
  SELECT *
  FROM table@source ts
  WHERE ts.ID=table.ID AND ts.ID2=table.ID2
)

但它不起作用......

有人能帮助我吗?

例如我希望我的要求:

Target :
ID-ID2-NUM
01-001-100    ->    updated
02-002-200    ->    deleted
04-004-400    ->    deleted

Source :
ID-ID2-NUM
01-001-111    ->    used to update Target
02-001-020    ->    added in Target
03-003-300    ->    added in Target

更新和删除部分已经正常工作。 所有我遇到麻烦的是添加线部分。

1 个答案:

答案 0 :(得分:1)

好的,最后我发现了我的错误:

INSERT INTO table
SELECT * FROM table@source
WHERE NOT EXISTS (
  SELECT *
  FROM table tt
  WHERE tt.ID=table.ID@source AND tt.ID2=table.ID2@source
)