Re: naming triggers for execution - Mailing list pgsql-general

From Adrian Klaver
Subject Re: naming triggers for execution
Date
Msg-id 79306433-e971-a80f-be28-2af6cb7314ee@aklaver.com
Whole thread Raw
In response to Re: naming triggers for execution  (PegoraroF10 <marcos@f10.com.br>)
List pgsql-general
On 11/15/19 7:11 AM, PegoraroF10 wrote:
> well, my way of doing auditing is done on replica, so it´s a little different
> on production server I do on before update
> 
>    IF (tg_op = 'UPDATE') AND (new.* IS DISTINCT FROM old.*) THEN
>      new.userauditing = User_ID
>      new.datetimeauditing = current_timestamp;
>    END IF;
>    RETURN new;
> 
> Then, on replica server I do
>    IF (tg_op = 'INSERT') THEN
>      insert into auditingtable .... with insert data
>    ELSIF (tg_op = 'UPDATE') AND (new.datetimeauditing IS DISTINCT FROM
> old.datetimeauditing) THEN
>      insert into auditingtable .... with old and new data
>    ELSIF (tg_op = 'DELETE') THEN
>      insert into auditingtable .... with old data
>    END IF;
> That trigger on replica is configured to run on replica with ENABLE REPLICA
> TRIGGER
> 
> With this approach I´m sure nothing will be audited if nothing was changed
> and additionally all auditing will be done on replica which will frees the
> production server for production and not auditing.
> 
> But, independently of my auditing is being different from yours, what do you
> do when you have two triggers using same event on same table.
> Another example I can give you is when you define a PK. Imagine you have a
> function which creates your PK, but another trigger needs that pk value to
> do something. Both are ran before insert but trigger which creates PK needs
> to be the first. How can you sure this happens.

Back to your original post:

"If multiple triggers of the same kind are defined for the same event, 
they will be fired in alphabetical order by name."

Use appropriate naming or combine/nest the functions.


> 
> 
> 
> --
> Sent from: https://www.postgresql-archive.org/PostgreSQL-general-f1843780.html
> 
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: porting horde to Postgresql 12, dropped pg_attrdef
Next
From: Adrian Klaver
Date:
Subject: Re: Create array of data from JSONB in PG 9.5