1

我有一個DW表,我從中插入表中插入數據。該DW表包含5列,我基本上檢查是否所有5列的組合已經存在於DW表中,同時從臨時表中選擇,如果它存在,那麼我不進行插入(或更新)並跳過該行(因爲它已經存在)。紅移插槽

另一方面,如果有任何行沒有5列的組合,那麼我做一個插入。

有沒有辦法使用upsert實現這一點。因爲我沒有在這裏做任何更新操作(只插入和刪除(這是忽略插入))。我不確定upsert是否是正確的選擇。

回答

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 
;