我有一张树形结构的A表(aid,aname,apid)
有另外一张树形结构的B表(bid,bname,bpid)要怎么样才能够把A表中的数据迁移到B表中,并且使A表的数据成为B表一个数据的分树。
例如
A表数据
aid  aname  apid
0    测试0   -1
1    测试1   0
B表数据
bid  bname  bpid
0    数据0   -1
1    数据1   0然后把A表数据迁移到B表数据的id为1下B表数据变为
bid  bname  bpid
0    数据0   -1
1    数据1   0
2    测试0   1  --这是原A表数据
3    测试1   2  --这是原A表数据

解决方案 »

  1.   

    把A表中的数据复制一份到C表,用游标遍历C表中的所有数据:select max(id) + 1 into max_BID from B;  --取得B表中的最大的ID值update A
    set ID = ID + max_BID
    where ID = C.ID;  --C.ID是一个特定的值,也就是也就是C表中每行数据的ID的值update A
    set apid = apid + max_BID
    where apid = C.ID;  --C.ID是一个特定的值,也就是C表中每行数据的ID的值--还有一个更新A表顶层节点的apid = max_BID - 1--最后
    insert B
    select * from A;