一个数十万条记录的表A,希望将表A的数据全部导入同样结构的表B,如何做?(单纯的用insert语句是不行的)

解决方案 »

  1.   

    insert into A select * from B
    这样行不?
      

  2.   

    1.复制表B
    2.将表a改为B
    3.然后将原来的表B的记录插入到现在的表B
      

  3.   

    insert into B select * from A;
    数十万条的记录并不算多啊,为什么不可以直接insert ?
      

  4.   

    create table b as select * from a;
      

  5.   

    insert /*+append*/ into b select * from a;
    commit;
      

  6.   

    对于大数据量操作,直接用sql实现可能比在程序代码里再处理一把来得要快。
      

  7.   

    对于这么大量的数据,用insert这样一条条的建立,是很慢的,即使把索引和主键都删除了还是很慢。
    建议用数据库工具,将数据给导成文件,然后在服务器上在import进去保存比较现实。可能你的目的表不在一个库/用户下,或者是不在一个机器上,这样做就比较方便了。
      

  8.   

    是呀,不用sql做,用文件导入。批量update
      

  9.   

    为什么不能用insert呢,有好多办法呢,比如create table B as select * from A;比如insert into B select * from A;比如将A表的数据导出为A.dmp;然后import到B表中去;哪种方法都行,最后两种方法都是把A中的数据追加到B中去。
      

  10.   

    declare
    v_rowcount number;
    begin
       loop
         update T_CARCASE_CAR 
            set CREATED_BY = user,CREATED_DATE=sysdate,UPDATED_BY=user,UPDATED_DATE=sysdate
          where CREATED_BY=null or CREATED_DATE=null or UPDATED_BY=null or UPDATED_DATE=null
            and rownum<100001;
          v_rowcount:=sql%rowcount;      
          commit;   
         exit when v_rowcount<10000;
       end loop;  
    end;
    / 上面举个例子可以实现每一万条记录分段commit的功能。
    避免所有记录一起修改引起的回滚段不足;并且在过程运行如果遇到什么错误而终止,也已经有一部分数据已经修改成功,再次运行时只需要修改剩下的记录,避免了一起修改时万一出错就前功尽弃的问题。
      

  11.   

    抱歉:
    declare
    v_rowcount number;
    begin
       loop
         update T_CARCASE_CAR 
            set CREATED_BY = user,CREATED_DATE=sysdate,UPDATED_BY=user,UPDATED_DATE=sysdate
          where CREATED_BY=null or CREATED_DATE=null or UPDATED_BY=null or UPDATED_DATE=null
            and rownum<10001;
          v_rowcount:=sql%rowcount;      
          commit;   
         exit when v_rowcount<10000;
       end loop;  
    end;

    中间有个地方写成10万级的了
      

  12.   

    才10万条,且是同构的insert 很快就可以搞定了。为啥不行呢?有trigger 就先停用Trigger ,有唯一索引的就调整一下所以字段的值就可以了。
      

  13.   

    insert into B select * from A,执行前把B的索引去掉,插入完成之后再加索引!