首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

一个触发器有关问题

2012-02-06 
一个触发器问题我想写一个触发器,当表A 的一条记录的字段status由-1 UPDATE 为 0 时字段FD1MAX(FD1)+2,FD

一个触发器问题
我想写一个触发器,当表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 代替

热点排行