Re: [EXTERNAL]: Re: [EXTERNAL]: Re: UPSERT in Postgres
Rob Sargent <robjsargent@gmail.com>
From: Rob Sargent <robjsargent@gmail.com>
To: pgsql-general@lists.postgresql.org
Date: 2023-04-10T02:16:05Z
Lists: pgsql-general
On 4/9/23 19:55, Louis Tian wrote: > Hi Alban, > > "I am not expecting an error here", by "here" I means when doing a TRUE UPSERT (an upsert current does not exist in Postgres). > I am NOT referring to an "Insert on conflict do update" (which despite its intention and wide acceptance is not fully equivalent to a true upsert). > I understand the error I am getting now is due to not null constraint given how "insert on conflict" works. > > An UPSERT checks whether a row exists, if so, it does an update, if not it does an insert. This is the literal definition. This the part that's always eluded me: How does the client, the UPSERTer, come to hold an id and not know whether or not it's already in the database.