DB2 trigger

Hi,

I am trying to create this trigger that is updating the time and data in a table when a flag is changed in another table. This is the trigger.

The erros is : This statemens is not allowed.

Any ideas how can i make it work?

Thanks.
CREATE TRIGGER name
 
	BEFORE UPDATE ON table
 
	REFERENCING OLD AS OLDVAL 
 
	NEW AS NEWVAL 
 
	FOR EACH ROW 
 
	MODE DB2SQL 
 
	
 
	when (OLDVAL.flag != NEWVAL.flag )
 
		UPDATE other_table
 
				SET (FEADAT,FEATIM) = (CURRENT DATE, SUBSTR(CAST(current time AS CHAR(8)),1,2) ||  SUBSTR(CAST(current time AS CHAR(8)),4,2) )
 
					WHERE other_table.id =NEWVAL.id ;

Open in new window

se_1581Asked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
Dave FordConnect With a Mentor Software Developer / Database AdministratorCommented:

I agree with Kent. It should be an AFTER trigger.

Also, I think you need a BEGIN and END.

e.g.
 create trigger TR_MyTableAfterUpdate
   after update of flag on MyTable
   referencing new row as NewRow
               old row as OldRow
   for each row
   set option dbgview = *source
 Begin
    update SomeOtherTable s
    .... < some stuff >
    ;
 End;

Open in new window

0
 
Kent OlsenConnect With a Mentor Data Warehouse Architect / DBACommented:
Hi se,

I believe that this kind of trigger needs to be an AFTER trigger.  


Kent
0
 
se_1581Author Commented:
Thanks guys.
0
All Courses

From novice to tech pro — start learning today.