我想写一个触发器,当表A 的一条记录的字段status由-1 UPDATE 为 0 时
字段FD1=MAX(FD1)+2,FD2=MAX(FD2)+2
我这样写的
CREATE TRIGGER TR_A_FD
AFTER UPDATE OF STATUS ON A
REFERENCING OLD AS OLDSTATUS NEW AS NEWSTATUS
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
IF OLDSTATUS.STATUS=-1 and NEWSTATUS.STATUS=0 THEN
--update records
Update A set (FD1,FD2)=(select max(FD1)+2 as FD1,max(FD2)+2 as FD2 from A) where ;
END IF;
END
;
我的WHRER的条件应该怎么写呢,谢谢了!
------解决方案--------------------------------------------------------
CREATE TRIGGER TR_A_FD
AFTER UPDATE OF STATUS ON A
REFERENCING OLD AS OLDSTATUS NEW AS NEWSTATUS
FOR EACH ROW MODE DB2SQL WHEN ( OLDSTATUS.STATUS=-1 and NEWSTATUS.STATUS=0)
Update A set (FD1,FD2)=(select max(FD1)+2 as FD1,max(FD2)+2 as FD2 from A) where STATUS=NEWSTATUS.STATUS;
好像可以这么写吧~好久没写过了不知道对不对哦
你那个if 可以用上面的When 代替