Search Postgresql Archives

Re: naming triggers for execution

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxx





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux