私はユーザーデータを一括して挿入するデータマイニングプログラムを作成しています。Postgresで一括更新(bulk upsert)した場合の一括挿入
現在のSQLは、単なる一括挿入です:
insert into USERS(
id, username, profile_picture)
select unnest(array['12345']),
unnest(array['Peter']),
unnest(array['someURL']),
on conflict (id) do nothing;
紛争の場合、私はアップデートをどのように行うのですか?私は試しました:
...
unnest(array['Peter']) as a,
unnest(array['someURL']) as b,
on conflict (id) do
update set
username = a,
profile_picture = b;
しかし、それはThere is a column named "a" in table "*SELECT*", but it cannot be referenced from this part of the query.
エラーをスローします。
EDIT:USERS
の
表は非常に簡単である:
create table USERS (
id text not null primary key,
username text,
profile_picture text
);
主キーはどちらですか?テーブル作成コードとは何ですか? –
@userコードを追加しました。それは単なる非常に簡単なテーブルです –