1
1. 첫번째.. 테이블은 생성하되 어떠한 행도 지정하지 않으면 됩니다.
CREATE TABLE emp_copy AS SELECT * FROM emp WHERE rownum = 0;
2. 구조를 얻어오고 , 그 구조대로 오브젝트를 다시 만드세요
- 구조를 얻어오기 전에 set long 명령을 써서 컬럼에 표시되는 크기를 조정하세요.
SQL> SET LONG 5000
- 다음은 테이블 구조를 얻어오는 명령입니다.
SQL> select dbms_metadata.get_ddl('TABLE','EMP','SCOTT') from dual;
DBMS_METADATA.GET_DDL('TABLE','EMP','SCOTT')-----------------------------------------------------------------------
CREATE TABLE "SCOTT"."EMP"( "EMPNO" NUMBER(4,0),"ENAME" VARCHAR2(10),"JOB" VARCHAR2(9),"MGR" NUMBER(4,0),"HIREDATE" DATE,"SAL" NUMBER(7,2),"COMM" NUMBER(7,2),"DEPTNO" NUMBER(2,0),CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICSSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS" ENABLE,CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO")REFERENCES "SCOTT"."DEPT" ("DEPTNO") ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)TABLESPACE "USERS"
감사합니다~김병두님(__)
^-^너무 쉽게 이해할수 있었습니다.
첫번째 방법으로 해서 테이블 생성을 하게되면
제약조건은 생기지 않습니다.
그냥 겉모양만 복사해 오는거죠..
첨에 저 방법으로 했다가 데이터에 PK가 안걸린걸 나중에 안 경험이 있어서...
걍.. 참고하세요