Yes this would be the better approach.

Sent from Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: yudhi s <learnerdatabas...@gmail.com>
Sent: Wednesday, September 4, 2024 6:10:04 PM
To: Muhammad Usman Khan <usma...@bitnine.net>
Cc: pgsql-general <pgsql-general@lists.postgresql.org>
Subject: Re: question on audit columns


On Wed, Sep 4, 2024 at 6:29 PM Muhammad Usman Khan 
<usma...@bitnine.net<mailto:usma...@bitnine.net>> wrote:
Hi,

In your scenario, triggers can add some overhead since they require extra 
processing after each update operation. Considering the size of your table and 
the high transaction volume, you need to observe that this might significantly 
affect performance.




On Wed, 4 Sept 2024 at 17:50, yudhi s 
<learnerdatabas...@gmail.com<mailto:learnerdatabas...@gmail.com>> wrote:
Hello,
In postgres database , we have all the tables with audit columns like 
created_by_user, created_timestamp,updated_by_user, updated_timestamp. So we 
have these fields that were supposed to be populated by the time at which the 
insert/update operation happened on the database but not at the application 
level. So we are planning to populate the created_by_user, created_timestamp 
columns by setting a default value of "current_timestamp" and "current_user" 
for the two columns,  but no such this is available to populate while we do the 
update of the row, so the only option seems to be through a trigger.

So wanted to check with the experts here  ,considering the table will be DML 
heavy table (300M+ transactions will be inserted daily), Is is okay to have the 
trigger for this table for populating all the audit columns or should we keep 
default for  created_by_user, created_timestamp and just trigger for the update 
related two audit column? Basically wanted to see, if the default value does 
the same thing as a trigger or it does something more optimally than trigger?

Regards
Yudhi

Thank you so much. So do you mean to say that , we should add default values 
for the create_timestamp and create_user_id as current_timestamp and 
current_user,  but for update_user_id and update_timestamp , we can ask the 
application to update the values manually , whenever they are executing the 
update statement on the rows?

Reply via email to