菜鸟遇到难题 了……求大侠们帮忙,非常感谢问题描述:
机构信息表
orgInfo(id,sorgId,sl1orgid,sl2orgid,sl3orgid,sl4orgid...)
备注:机构信息表间有层次关系sorgid是当前机构id,sl1orgid是当前机构上一级机构id,sl2orgid是当前机构上上级机构id....数据信息表
dataInfo(id,sorgId,sl1orgid,sl2orgid,sl3orgid,sl4orgid...)
-----------
问题1:现在修改了机构信息表的某条记录的上级机构id(sl1orgid),如何把后面的也级联了
(sl2orgid,sl3orgid,sl4orgid.因为上级机构改变了,所以再上级机构也应该改变)问题2: 因为机构信息改变了,所以数据信息里对应的机构和其所有上级机构也应该改变请分别写一句sql,我功力看来太浅了,实在写不出来,请大侠们帮帮我

解决方案 »

  1.   

    --问题一:
    update orgInfo a 
          set=(select sl2orgid from orgInfo b where a.id=b.id and rownum=1),
          set=(select sl3orgid from orgInfo b where a.id=b.id and rownum=1),
          set=(select sl4orgid from orgInfo b where a.id=b.id and rownum=1),....
    where id='011'(因为你修改了某条机构信息的sl1orgid值,那么这条记录的id值应该知道吧,可以作为修改条件)。
      

  2.   

    --问题二:假如你修改的那条记录的id为'011'吧
    update dataInfo a 
          set=(select sl2orgid from orgInfo b where a.id=b.id and rownum=1),
          set=(select sl3orgid from orgInfo b where a.id=b.id and rownum=1),
          set=(select sl4orgid from orgInfo b where a.id=b.id and rownum=1),....
    where exists(select 1 from orgInfo c where c.id=a.id and a.id='011')(因为你修改了某条机构信息的sl1orgid值,那么这条记录的id值应该知道吧,可以作为修改条件)。
      

  3.   

    学习了~
    oraclelgan最近很活跃啊
    好久没来了记得以前有一位oracledbalgtu的大大(名字和你的很像啊)
    你们不会认识吧,嘎嘎
      

  4.   

    我这个要选择是否要级联修改数据的
    而且就算用触发器语句也是要写的我用了那种最笨的方法就是把字段都查出来然后再update
    我只是想学习一下怎么写在一个句子里面
    现在会两种方法了明天早上来结贴:)
      

  5.   


    不是一个人啊!嘻嘻!以后就在oracle版块和大家一起学习了啊!
      

  6.   

    第一个问题:你要写触发器
    第二个问题:就是在触发器里用修改后的new去赋值给你的old就可以啦!
    如果还有问题再说。
      

  7.   

    哪个高手建的高级表啊。orgid,parentorgid 两个字段就能摆平的事。