Продолжение Руководство по плану разностных нагрузок таблицы AWS Redshift
Выбор, приведенный в следующем запросе, работает нормально и возвращает новые вставки в таблицу этапов:
SELECT A, B, C, D, E, F, G
FROM TABLE_STAGE A
WHERE NOT EXISTS (SELECT B.ID
FROM TABLE_FINAL B
WHERE B.B = A.B
AND B.C = A.C
AND B.D = A.D
AND B.E = A.E);
но когда я пытаюсь вставить их в финальную таблицу, используя приведенный ниже оператор, происходит сбой:
INSERT INTO TABLE_FINAL values
(SELECT A, B, C, D, E, F, G
FROM TABLE_STAGE A
WHERE NOT EXISTS (SELECT B.ID
FROM TABLE_FINAL B
WHERE B.B = A.B
AND B.C = A.C
AND B.D = A.D
AND B.E = A.E));
Правильно ли выполнить запрос, чтобы получить только те строки, в которых составной ключ является новым и не 'не существует в финальной таблице.Каков наиболее эффективный способ сделать это, если это не правильное решение?Как это сделать?