当前位置: 代码迷 >> DB2 >> 一个触发器有关问题
  详细解决方案

一个触发器有关问题

热度:9760   发布时间:2013-02-26 00:00:00.0
一个触发器问题
我想写一个触发器,当表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 代替
  相关解决方案