【发布时间】:2019-04-12 11:09:26
【问题描述】:
AWS Redshift Table Delta Load Plan's Guidance继续
以下查询中给出的选择工作正常,并在阶段表中返回新插入:
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));
查询是否正确,只获取复合键是新的且最终表中不存在的那些行。如果这不是正确的解决方案,那么最有效的方法是什么。怎么做?
【问题讨论】:
-
代码怎么失败了?
-
第二个查询根本无效。如果您想使用 SELECT 作为 INSERT 的源,请删除
values子句 -
我做到了,它奏效了。谢谢!您能否也请查看上一个查询(我已经给出了链接)并告诉我这是否是最好的方法?
标签: sql database amazon-redshift