在redshift中Upsert

时间:2016-08-05 05:24:52

标签: amazon-web-services data-warehouse amazon-redshift upsert

我有一个DW表,我正在从临时表中插入数据。 DW表包含5列,我基本上检查从登台表中挑选时DW表中是否已存在所有5列的组合,如果它存在,那么我不进行插入(或更新)并跳过那一行(因为它已经存在)。

另一方面,如果存在没有5列组合的任何行,那么我进行插入。

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

1 个答案:

答案 0 :(得分:2)

Redshift中没有UPSERT这样的内容,请参阅documentation。如果您打算只将行加载到一个尚未包含的表中,那么这应该可以解决问题:

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