有一个工单表A,有一个工单子表B
有一个归档工单表C,有一个归档子工单表D现在需要将工单A表的数据移除到C表,同时在C表中填移数据的人,和时间。将与A相关的B表数据移除到D表,同时在D表中填移数据 的人和时间。求解决方案

解决方案 »

  1.   

    A-->C  C时间,人
    A.id=B.id-->D  时间,人
    insert into c(a,c,b,c)
    select *,'oper',sysdate from a;insert into d(a,c,d,e,f)
    select b.*,'oper',sysdate from b,a where a.id = b.id
     
      

  2.   


    /*
    c表:在a表的基础上增加两个字段:dt(时间字段),people(移动数据人字段)
    d表:字段与a,b两个表的字段相同,外增加两个字段,时间和移动数据的人;
    inert into c
    select a.*,people,dt from a
    where 1=1;
    /
    d表数据的迁移,你想怎么实现?
    因为两个表合并涉及到遍连接,连接后的数据与原来的数据差别很大
    */
      

  3.   

    a,b,c,d分别为表中的字段
    如:时间用time,迁移人,person
    insert into c(a,c,b,c,time,person)
    select a,c,b,c,sysdate,'person' from a;
    id字段为外键
    insert into d(a,c,b,c,time,person)
    select a,c,b,c,sysdate,'person' from b where b.id in( select  a.id from a);
      

  4.   

    直接将上面的sql语句改改,写到存储过程中直接调用就行了
      

  5.   

    最好在同一个事务中处理。
    另外判断是否有外键约束,
    先写约束表,再写被约束表;先删被约束表,再删约束表。
    SQL:略
      

  6.   

    程序是前台选时间,然后与设定的时间做一个交集,作为条件,再将username,userid,opertime作为参数,做一个存储过程+事务。
    但是不太会写这个
      

  7.   

    insert into tableC (select *,xm,sysdate from tableA) ----将A表中的所有数据移到C表
    insert into tableD (select b.*,'xm',sysdate from tableA a,tableB b where a=b) ----将A与B相关的数据插入到D表
      

  8.   

    这个不就是转历史操作吗?写一个存储过程,需要一个参数,传入工号,
    时间可以直接使用函数sysdate得到,注意将所有insert和delete操作
    作成一个事务就行了。