【发布时间】:2020-10-26 20:32:55
【问题描述】:
SQL> SELECT * FROM SOURCE;
MEMBER_ID FIRST_NAME LAST_NAME RANK
---------- ---------- ---------- --------------------
1 Abel Wolf Gold
2 Clarita Franco Platinum
3 Darryl Giles Silver
4 Dorthea Suarez Silver
5 Katrina Wheeler Silver
6 Lilian Garza Silver
7 Ossie Summers Gold
8 Paige Mcfarland Platinum
9 Ronna Britt Platinum
10 Tressie Short Bronze
10 rows selected.
SQL> SELECT * FROM DESTINATION;
MEMBER_ID FIRST_NAME LAST_NAME RANK
---------- ---------- ---------- --------------------
1 Abel Wolf Silver
2 Clarita Franco Platinum
3 Darryl Giles Bronze
4 Dorthea Gate Gold
5 Katrina Wheeler Silver
6 Lilian Stark Silver
11 Chris Well Silver
7 rows selected.
当我尝试执行以下查询时,它正在执行,但没有从目标表中删除记录 11:
MERGE INTO DESTINATION D
USING SOURCE S
ON (D.MEMBER_ID = S.MEMBER_ID)
WHEN MATCHED THEN
UPDATE
SET D.FIRST_NAME = S.FIRST_NAME,
D.LAST_NAME = S.LAST_NAME,
D.RANK = S.RANK
DELETE
WHERE D.MEMBER_ID <> S.MEMBER_ID
WHEN NOT MATCHED THEN
INSERT
(D.MEMBER_ID, D.FIRST_NAME, D.LAST_NAME, D.RANK)
VALUES
(S.MEMBER_ID, S.FIRST_NAME, S.LAST_NAME, S.RANK);
【问题讨论】:
标签: sql oracle oracle11g sql-merge