Sto scrivendo un programma di data mining, che inserisce in massa i dati dell'utente.Inserimento di massa, aggiornamento in caso di conflitto (invio cumulativo) su Postgres
SQL corrente è solo un semplice inserimento di massa:
insert into USERS(
id, username, profile_picture)
select unnest(array['12345']),
unnest(array['Peter']),
unnest(array['someURL']),
on conflict (id) do nothing;
Come faccio a fare un aggiornamento se il conflitto? Ho provato:
...
unnest(array['Peter']) as a,
unnest(array['someURL']) as b,
on conflict (id) do
update set
username = a,
profile_picture = b;
Ma genera l'errore There is a column named "a" in table "*SELECT*", but it cannot be referenced from this part of the query.
.
EDIT:
Tabella di USERS
è molto semplice:
create table USERS (
id text not null primary key,
username text,
profile_picture text
);
Qual è la chiave primaria? Qual è il codice di creazione della tabella? –
@user Ho aggiunto il codice, è solo una tabella molto semplice –