如下语句,会即复制表结构又复制表中数据
create table b as select * from a问题是,复制之后主键设置没了,还有什么会没有?如果我想全部都相同的复制,除了上述语句,还要执行什么。 

解决方案 »

  1.   

    没有好的办法如果你想要完整的结构用下面的语句可以获得select dbms_metadata.get_ddl('TABLE','your table name') from dual;
      

  2.   

    主键,外键,index, trigger都需要重建。
      

  3.   

    你那样只是将表的字段和字段内容复制过去了。
    其他的例如什么授权啊,主外键,注释comment啊,约束阿,触发啊 都要重新建起来。你要想将那些都搬过去,你倒不如果直接查看那个表的建表SQL,取出来 再修改一下(1楼已给出方法,但要注意的是输入的表名用大写)
      

  4.   

    先把建表的ddl语言导出来。在导入时,把表名替换下就行了。
      

  5.   

    楼主这种复制只会有一个非空约束,其他约束就没了,只剩数据了。有个麻烦点的方法就是用exp/imp导出。1楼方法貌似不错
      

  6.   

    exp/imp命令好像对同一用户是不行的,楼上的几种ddl方法不错
      

  7.   

    1楼的方法还不符合楼主的要求
    对于索引 函数等其他依赖的对象 还需要get_metadata.get_dependent_ddl  只有dbms_metadata.get_ddl不够
      

  8.   

    我嫌麻烦,就直接复制原来的sql重新建了表。谢谢大家。