Re: distinguish update from insert (on conflict) - Mailing list pgsql-general

From Adrian Klaver
Subject Re: distinguish update from insert (on conflict)
Date
Msg-id ea171054-0a98-7467-78f6-ea34a20d2028@aklaver.com
Whole thread Raw
In response to Re: distinguish update from insert (on conflict)  (Justin Pryzby <pryzby@telsasoft.com>)
List pgsql-general
On 5/21/19 7:37 PM, Justin Pryzby wrote:
> On Tue, May 21, 2019 at 06:57:36PM -0700, Adrian Klaver wrote:
>> On 5/21/19 6:34 PM, Justin Pryzby wrote:
>>> Is it still impossible to distinguish whether a row was inserted vs updated ?
>>
>> You will need to be more specific.
> 
> Sorry, I mean with UPSERT / "INSERT .. ON CONFLICT DO UPDATE", is it possible
> to tell whether a row was inserted vs. updated ?

In addition to Fabio's suggestion, from my previous post:

https://www.postgresql.org/docs/10/sql-createtrigger.html

"n some cases it is possible for a single SQL command to fire more than 
one kind of trigger. For instance an INSERT with an ON CONFLICT DO 
UPDATE clause may cause both insert and update operations, so it will 
fire both kinds of triggers as needed. The transition relations supplied 
to triggers are specific to their event type; thus an INSERT trigger 
will see only the inserted rows, while an UPDATE trigger will see only 
the updated rows."

So you might want to check out triggers using transition tables.

> 
> Thanks,
> Justin
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



pgsql-general by date:

Previous
From: Rich Shepard
Date:
Subject: Re: Bulk inserts into two (related) tables
Next
From: Rob Sargent
Date:
Subject: Re: Bulk inserts into two (related) tables