Re: [EXTERNAL]: Re: [EXTERNAL]: Re: UPSERT in Postgres
От | Adrian Klaver |
---|---|
Тема | Re: [EXTERNAL]: Re: [EXTERNAL]: Re: UPSERT in Postgres |
Дата | |
Msg-id | 6638961e-cbcb-f21b-1b1c-347f01093e3e@aklaver.com обсуждение исходный текст |
Ответ на | Re: [EXTERNAL]: Re: [EXTERNAL]: Re: UPSERT in Postgres (Rob Sargent <robjsargent@gmail.com>) |
Список | pgsql-general |
On 4/9/23 19:16, Rob Sargent wrote: > 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. My use case is for bulk loading data into a table I know has data that will create a PK/Unique violation with the inserted data. It's a quick and dirty way to avoid queries that look for potential violations ahead of time, basically 'Ask forgiveness' vs 'Get permission'. -- Adrian Klaver adrian.klaver@aklaver.com
В списке pgsql-general по дате отправления: