Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 红移上升_Amazon Web Services_Data Warehouse_Amazon Redshift_Upsert - Fatal编程技术网

Amazon web services 红移上升

Amazon web services 红移上升,amazon-web-services,data-warehouse,amazon-redshift,upsert,Amazon Web Services,Data Warehouse,Amazon Redshift,Upsert,我有一个DW表,在其中插入来自暂存表的数据。DW表包含5列,在从暂存表中选取时,我主要检查DW表中是否已经存在所有5列的组合,如果存在,则不进行插入(或更新)并跳过该行(因为它已经存在) 另一方面,如果存在没有5列组合的行,则我进行插入 是否有一种使用upsert实现此目的的方法。因为我没有在这里执行任何更新操作(仅插入和删除(即忽略插入))。我不确定upsert是否是正确的选择。红移中没有upsert这样的东西,请查看他们的。如果您只想将尚未包含的行加载到表中,那么应该这样做: insert

我有一个DW表,在其中插入来自暂存表的数据。DW表包含5列,在从暂存表中选取时,我主要检查DW表中是否已经存在所有5列的组合,如果存在,则不进行插入(或更新)并跳过该行(因为它已经存在)

另一方面,如果存在没有5列组合的行,则我进行插入


是否有一种使用upsert实现此目的的方法。因为我没有在这里执行任何更新操作(仅插入和删除(即忽略插入))。我不确定upsert是否是正确的选择。

红移中没有
upsert
这样的东西,请查看他们的。如果您只想将尚未包含的行加载到表中,那么应该这样做:

insert into target_table
    select
        *
    from
        source_table
    left join
        target_table using(col1, col2, col3, col4, col5)
    where
        target_table.col1 is null
;

我可以问一下如何处理多个唯一键吗?@xbeta您能再解释一下您的意思吗,即您想插入哪些行,以及您想忽略哪些行?我上面的示例假设
col1
-
col5
的组合是唯一键。但是,您可以使用和where条款修改
,以适合您的情况。