Piszę program do eksploracji danych, który zbiorczo wstawia dane użytkownika.Wstawianie luzem, aktualizacja w przypadku konfliktu (upsert bulk) na Postgresie
Obecny SQL jest tylko zwykły bulk insert:
insert into USERS(
id, username, profile_picture)
select unnest(array['12345']),
unnest(array['Peter']),
unnest(array['someURL']),
on conflict (id) do nothing;
Jak zrobić aktualizacji, jeśli na konflikt? Próbowałem:
...
unnest(array['Peter']) as a,
unnest(array['someURL']) as b,
on conflict (id) do
update set
username = a,
profile_picture = b;
Ale powoduje to błąd There is a column named "a" in table "*SELECT*", but it cannot be referenced from this part of the query.
.
EDIT:
Tabela USERS
jest bardzo prosta
create table USERS (
id text not null primary key,
username text,
profile_picture text
);
Który klucz podstawowy? Co to jest kod tworzenia tabeli? –
@user Dodałem kod, to tylko bardzo prosta tabela –