Moe*_*oeb 2 database oracle sqlplus
使用create table tab2 as select * from tab1;,我能够复制数据,但不能复制主键约束:
SQL> desc tab1;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NOT NULL NUMBER
NAME VARCHAR2(20)
SQL> select * from tab1;
ID NAME
---------- --------------------
1 A
SQL> create table tab2 as select * from tab1;
Table created.
SQL> desc tab2;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
NAME VARCHAR2(20)
SQL> select * from tab2;
ID NAME
---------- --------------------
1 A
SQL>
Run Code Online (Sandbox Code Playgroud)
如何复制具有所有约束的表格?
我会从类似的东西开始
set long 100000
select dbms_metadata.get_ddl('TABLE', 'TAB1', '<schemaname'>) from dual
Run Code Online (Sandbox Code Playgroud)
这将返回(在schema < schemaname >中)的create table语句.然后,您可以复制该语句并将标识符TAB1更改为TAB2.您应确保还更改了所有约束的名称,因为它们在Oracle中必须是唯一的.TAB1
最后,你要做一个 insert into TAB2 select * from TAB1