存储过程怎么写

xyong1325 2011-09-14 11:53:52
tab 有 id num1 num2 num3 num4 ……这几列 其中tab 有1W多条数据
当 修改 tab 中num1=10以后 即 update tab set num1=10 系统需要在重新计算
select* from where id=……的num4的值 (num4=num1+num2+……) 存储过程怎么写
...全文
91 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdsnhan 2011-09-15
  • 打赏
  • 举报
回复
即使不用触发器,一句sql也能更新了。
在更新num1 的时候,连带着把num14也更新了即可。
Luyi06292 2011-09-15
  • 打赏
  • 举报
回复
赞同触发器的观点。
Kobayashi 2011-09-14
  • 打赏
  • 举报
回复
这个我觉得没有必要写一个程序过程啊。。你直接写个触发器不就可以了吗???
xyong1325 2011-09-14
  • 打赏
  • 举报
回复
这个是我举的例一个列子
opps_zhou 2011-09-14
  • 打赏
  • 举报
回复
num4 = num1 + num2 + num3 ,这个字段压根就不应该设计出来,完全是冗余的,维护还麻烦
num1, num2, num3 修改了,全部都要更新这个字段

renfengjun 2011-09-14
  • 打赏
  • 举报
回复
CREATE OR REPLACE TRIGGER TRI_REFUSE_NUM4 
BEFORE UPDATE OF NUM1,NUM2,NUM3 ON TAB
FOR EACH ROW
BEGIN
:NEW.NUM4 := :NEW.NUM1+:NEW.NUM2+:NEW.NUM3 ;
END TRI_REFUSE_NUM4 ;
coolkisses 2011-09-14
  • 打赏
  • 举报
回复
1. 触发器实现,上述已经说明了做法
2. 存储过程,加标识,再分步实现。
1) update ,同时,加标识(如,更新时间,或更新标识位)
2) 根据 标识,再次进行计算 update 其它字段
没_没_没超疯 2011-09-14
  • 打赏
  • 举报
回复
写个触发器吧,如果是临时做的更新,可以写语句只更新一次num4即可
  • 打赏
  • 举报
回复
楼主什么意思,我怎么没看懂呢

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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