これが私が欲しいものです:tableAからtableBに行をコピーしますが、すでにtableBにある行はコピーしません。PKまたはIDはありません。各フィールドをチェックしたいだけで、すべて同じフィールドに一致する行がある場合は挿入しません。私はINSERTとMERGEの両方で試しました:
--try with INSERT
INSERT TableB(col1,col2,col3,col4,col5,col6, etc.)
SELECT (col1,col2,col3,col4,col5,col6, etc.)
FROM tableA as src
WHERE NOT EXISTS (SELECT 1 FROM TableB as T
WHERE
T.col1 = src.col1 AND
T.col2 = src.col2 AND
T.col3 = src.col3 AND
T.col4 = src.col4 AND
T.col5 = src.col5 AND
T.col6 = src.col6, etc.)
私もMERGEで試しました:
MERGE INTO tableA src
USING tableB T
ON (
T.col1 = src.col1 AND
T.col2 = src.col2 AND
T.col3 = src.col3 AND
T.col4 = src.col4 AND
T.col5 = src.col5 AND
T.col6 = src.col6, etc.)
WHEN NOT MATCHED THEN
INSERT (col1,col2,col3,col4,col5,col6, etc.)
VALUES (col1,col2,col3,col4,col5,col6, etc.);
どちらもまったく同じことを行います。挿入(またはマージ)を実行すると、最初はすべての行がインポートされます。これは問題ありませんが、2回目の試行(0行を挿入/マージする必要があります)で60%が挿入/マージされます。行の。
この問題は、他の投稿で見たようなPKがないためだと思います。すべてのフィールドで一致させたいのですが、それは可能ですか?私は何かが足りないのですか?
アドバイス/指示をありがとう!