본문 바로가기
프로그래밍/데이터베이스

Oracle에서 테이블 복사하기

by pentode 2018. 4. 20.
반응형

테이블 구조를 수정하거나 데이터의 조정이 필요해서 원본 테이블을 복사하여 작업하는 경우가 가끔 있습니다. 이럴 경우 사용할 수 있는 방법을 알아보겠습니다.



1. 임시 테이블 생성과 동시에 복사하기


TB_BOARD 라는 이름의 테이블을 TB_BOARD_TMP 라는 동일한 구조의 테이블을 만들고 데이터를 복사하는 방법입니다.


CREATE TABLE TB_BOARD_TMP AS SELECT * FROM TB_BOARD;


이 명령으로 임시 테이블의 생성과 데이터의 복사를 동시에 할 수 있습니다. 이 때 키와 인덱스는 생성되어지지 않습니다. 필요하다면 별도로 생성하여야 합니다.



2. 임시 테이블을 따로 만들고 데이터를 복사하는 방법입니다.


2-1. 테이블 구조가 동일할 때


INSERT INTO TB_BOARD_TEMP SELECT * FROM TB_BOARD;


필요하다면 SELECT 에 WHERE 절을 사용하여 부분적인 데이터만 복사할 수도 있습니다.


2-2. 테이블 구조가 다를 때


INSERT INTO TB_BOARD_TEMP (NUM, TITLE, CONTENTS)

SELECT NUM, TITLE, CONTENTS FROM TB_BOARD;


테이블 구조가 다르면 복사하고자 하는 필드명을 나열해 줍니다. 대응되는 필드의 이름이 같을 필요는 없고, 타입과 같고, 길이는 대상쪽이 크거나 같아야 합니다. NOT NULL 필드는 빼먹으면 오류가 나므로 주의해야 합니다.

반응형

댓글0