1

ステージングテーブルからデータを挿入する1つのDWテーブルがあります。 DWテーブルには5列が含まれています。ステージテーブルからピッキングしている間にDWテーブルに5つの列がすべて存在するかどうかを確認しています。存在する場合は挿入(または更新)その行(既に存在する)。Upsert in redshift

一方、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 
;