테이블을 복사하는 방법.

아래예는 JWUSER 테이블에서 JWUSER_NEW로 복사한후

기존JWUSER는 JWUSER_OLD,  카피한 테이블 JWUSER_NEW는 다시 JWUSER로 바까치기하는 예임.

제품의 버전업시 테이블 데이터타입이 변경되었을시 깔끔하게 바꿔치기하는데 쓰임. 


1. 테이블을 만듬

CREATE TABLE JWUSER_NEW

(

  SEQ_USER         NUMBER(19),

  USERID           VARCHAR2(60 BYTE),

  USERDOMAIN       VARCHAR2(100 BYTE),

  ....

  ....

  ....

  CONSTRAINT JWUSER_NEW_PK PRIMARY KEY (seq_user)

);


2. 복사함. ( jwuser-> jwuser_new로 복사)

INSERT INTO jwuser_new(SEQ_USER, USERID, USERDOMAIN, ....) SELECT * FROM jwuser;


3. 기타부가적으로 변경 (테이블변경)

-- 기존JWUSER -> JWUSER_OLD 로 변경

ALTER TABLE JWUSER RENAME CONSTRAINT JWUSER_PK to JWUSER_OLD_PK;

ALTER TABLE JWUSER RENAME TO JWUSER_OLD;


-- 신규테이블 JWUSER_NEW -> JWUSER 로 변경

ALTER TABLE JWUSER_NEW RENAME CONSTRAINT JWUSER_NEW_PK to JWUSER_PK;

ALTER TABLE JWUSER_NEW RENAME TO JWUSER;



4. 부가잡다구리정보 : CONSTRAINT NAME 조회

SQL> SELECT TABLE_NAME, CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME IN('JWUSER');


TABLE_NAME                            CONSTRAINT_NAME

------------------------------ ------------------------------

JWUSER                                    JWUSER_PK



'업무 > DB' 카테고리의 다른 글

[mysql] 개발DB만들기  (0) 2012.08.21
[mysql] sql덤프받기(특정조건, 문자셋지정해서)  (0) 2012.08.20
[oracle] DB 테이블 이름 변경  (0) 2012.05.31
[oracle] 시퀀스 조작하기.  (0) 2012.05.09
[oracle] 날짜 집어넣기  (0) 2012.04.10

+ Recent posts