DB2 触发器的问题

shuang840723 2009-07-06 10:05:50
加精
ORACLE中有个函数能返回执行数 DB2的触发器有没有相关的函数!

BEGIN ATOMIC

inum INTEGER;

SET inum = (update lis_itemcount set itemcount = itemcount + 1 WHERE testdate = new.testdate and itemcode = new.itemcode and machinecode = new.machinecode);
IF inum is null then
insert into lis_itemcount values(new.testdate,new.itemcode,new.machinecode,1);
END IF;--

END;

这个是我想的一个方法,但是执行不过去。还请各位老大指导!
...全文
437 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
aitianrew 2009-08-03
  • 打赏
  • 举报
回复
楼主很不错。
无·法 2009-07-30
  • 打赏
  • 举报
回复
帮顶
泛87 2009-07-27
  • 打赏
  • 举报
回复
有的吧
lizhixun 2009-07-07
  • 打赏
  • 举报
回复
昨天一家一天独特你
Raul10 2009-07-07
  • 打赏
  • 举报
回复
学习一下。
各大数据库中,我对DB2最缺乏了解。
冰岛男孩 2009-07-07
  • 打赏
  • 举报
回复
mark
chenjialin2000 2009-07-06
  • 打赏
  • 举报
回复
可不可以变通一下,不用影响行数,把IF的条件改为
if not exists (select * from lis_itemcount where testdate = new.testdate and itemcode = new.itemcode and machinecode = new.machinecode) then
insert into lis_itemcount values(new.testdate,new.itemcode,new.machinecode,1);
END IF;--
这样也可以达到你需要的目的。
liyan93834183 2009-07-06
  • 打赏
  • 举报
回复
你所谓的执行数是什么啊?
andywag520 2009-07-06
  • 打赏
  • 举报
回复
什麽東東?看不懂哦
nettman 2009-07-06
  • 打赏
  • 举报
回复
Mark!
annysunshine 2009-07-06
  • 打赏
  • 举报
回复
sfds
guohouchang1 2009-07-06
  • 打赏
  • 举报
回复
再学习 使劲学习
bt592952205 2009-07-06
  • 打赏
  • 举报
回复
再学习 使劲学习
chenjialin2000 2009-07-06
  • 打赏
  • 举报
回复
以下是更好的方法
BEGIN ATOMIC

inum INTEGER;

update lis_itemcount set itemcount = itemcount + 1 WHERE testdate = new.testdate and itemcode = new.itemcode and machinecode = new.machinecode;
get diagnostics inum=ROW_COUNT;
IF inum=0 then
insert into lis_itemcount values(new.testdate,new.itemcode,new.machinecode,1);
END IF;--

END;
jerry215 2009-07-06
  • 打赏
  • 举报
回复
学习 学习

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧