Re: naming triggers for execution
От | Adrian Klaver |
---|---|
Тема | Re: naming triggers for execution |
Дата | |
Msg-id | 79306433-e971-a80f-be28-2af6cb7314ee@aklaver.com обсуждение исходный текст |
Ответ на | Re: naming triggers for execution (PegoraroF10 <marcos@f10.com.br>) |
Список | 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 по дате отправления: