create table T1(id number(10) primary key);
insert into T1 values(1);
commit;
insert into T1 values(2);
commit;
insert into T1 values(3);
commit;create table T2 as select * from T1 where 1 = 2;本来我是想偷懒,这样复制的表T2,并没有主键,用什么方法可以把主键一起复制。

解决方案 »

  1.   

    create table t2 (id primary key)  as select * from t1 where 1=2;
      

  2.   

    貌似必须指定列
    SQL> create table T1(id number(10) primary key);
     
    Table created
     
    SQL> create table T2("ID"  primary key) as select * from T1 where 1 = 2;
     
    Table created
     
    SQL> 
      

  3.   


     试试这个
    select dbms_metadata.get_ddl('TABLE','表名','用户名') from dual
      

  4.   

    create table t3 as select * from t;
    alter table t3 add constraint pk_id primary key (id);
      

  5.   


    这样复制不会约束复制过来 必须手动添加或者
    select dbms_metadata.get_ddl('TABLE','TABLE_NAME','OWNER') FROM DUAL然后在改下表名则可以完全负责
      

  6.   

    一般,手动。
    可以这样,
    select dbms_metadata.get_ddl('TABLE','TABLE_NAME','OWNER') FROM DUAL  才知道
      

  7.   

    pl/sql developer直接查看建表脚本,复制脚本,修改表名也是可以的