I had a request to identify which user was updating the rows in a table. I created the below to triggers to track the insert and update activity back to a user:
For the update I could use a no cascade before trigger without any where condition:
CREATE TRIGGER
SCHEMA_NAME.TRG47603
NO CASCADE BEFORE UPDATE
ON OWNER.TABLE_NAME
REFERENCING
OLD AS BEF
NEW AS AFT
FOR EACH ROW
MODE DB2SQL
BEGIN ATOMIC SET C_LAST_ID = USER
; END
#
For the insert I had to use an after trigger with a where condition matching on the unique index of the table:
CREATE TRIGGER
SCHEMA_NAME.TRG47604
AFTER INSERT
ON OWNER.TABLE_NAME
REFERENCING
NEW AS AFT
FOR EACH ROW
MODE DB2SQL
BEGIN ATOMIC
UPDATE OWNER.TABLE_NAME
SET C_LAST_ID = USER
WHERE C_SOURCE_ID = AFT.C_SOURCE_ID
AND C_SUB_ID = AFT.C_SUB_ID
; END
#