我复制整个一张表,但我现在想恢复到原表,原表的数据已经变动,就是不要原表的数据,把复制出的那张表的全部数据重新导进去,请问大大,我该怎么做,语句怎么写???原本复制表的语句
creat table 1_1 as
select * from 1  

解决方案 »

  1.   

    truncate table 1 ;insert into 1 
    select * from 1_1 ;
    commit;
      

  2.   


    这位大大,我在truncate的时候,就提示我不存在表或视图。这时为什么啊
      

  3.   

    --1.truncate table 1 ;insert into 1  
    select * from 1_1 ;
    commit;--2.
    drop table 1;
    rename table 1_1 to 1;
      

  4.   


    不好意思,我可能没有说明情况,我这张表可能有外键关联之类的约束,简单是drop不掉的。
      

  5.   

    1.检查你厄表名是否正确
    2.如果表名无误的话,把你的表名用双引号,引起来再操作看看。如:truncate table "1";
      

  6.   


    那你直接 select * from 1 报错不啊?
      

  7.   

    那你可以先禁用该表上的约束,等到把数据插入完后在启用约束。select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R' and table_name='your_table_name';
    启用所有外键约束select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R' and table_name='your_table_name';
      

  8.   


    其实这张原表不是本人创建的,请问什么语句可以查看这张有哪些约束,
    ps:    我用desc tablename看不到约束条件。
      

  9.   

    select table_name,constraint_name from user_constraints where table_name="your_table_name";
      

  10.   


    出现invalid identifer的错误,我语句应该没输错。
      

  11.   


    select table_name,constraint_name from user_constraints where table_name="1";!!!!!!
      

  12.   

    “我有个想法,就是把原表里面所有数据删掉,拿复制表的数据填充,是否可以实现???”上面的可以满足你的要求!
    但你不是说你的原表中的数据由于约束的关系,删除不了原表中的数据吗??这个就是删除原表中的数据,并回收高水位:
    truncate table 1;
    这个就是用1_1表中的数据来填充表1:
    insert into 1  
    select * from 1_1 ;
    commit;
      

  13.   

    直接drop掉,然后重新create l as select * from l_back 吧。
    如果没有外键关联的话应该不会慢的。