상세 컨텐츠

본문 제목

[Oracle] 테이블 데이터 복사하는 방법

DB/Oracle

by dy8_8 2022. 8. 24. 22:00

본문

728x90

기존에 있던 화면을 리뉴얼 해야 돼서 테이블을 그대로 복사할 일이 생겼다. 

데이터는 새로 넣을거지만 테스트를 위해 일부만 가져오면 돼서 테이블과 데이터 복사하는 방법을 찾아 봤다. 

 

 

1. 테이블과 데이터 복사하기 

CREATE TABLE 새로만들테이블명 AS

SELECT * FROM 복사할테이블명 [WHERE 절]

 

 

2. 테이블 구조만 복사하기

CREATE TABLE 새로만들테이블명 AS

SELECT * FROM 복사할테이블명 WHERE 1=2 [where절에 '참'이 아닌 조건을 넣어줌]

 

 

3. 구조가 동일한 테이블은 생성되어 있고 데이터만 복사

INSERT INTO 복사할테이블명 SELECT * FROM 테이블명 [WHERE 절]

 

 

4. 구조가 다른 테이블은 생성되어 있고 데이터만 복사 

INSERT INTO 복사할테이블명 (COLUMN1, COLUMN2, COLUMN3)

SELECT COLUMN1, COLUMN2, COLUMN3 FROM 테이블명

 

 

[] 대괄호 안의 내용은 필수가 아니라서 안 넣어도 된다. 

테이블 복사는 NOT NULL 조건만 복사가 되고 PK, INDEX, Comment 같은 건 복사가 안되므로 따로 지정해 줘야 한다.

1번을 이용해서 테이블을 만들면서 필요한 데이터만 넣으려고 했더니 

복사할테이블은 조인이 안 먹혀서 테이블을 따로 만들고 데이터를 넣었다. 

 

3번을 이용하여 데이터를 넣었고, 이너조인을 사용하여 원하는 데이터만 복사 할 수 있었다. 

 

마지막 Toad 사용하시는 분들은 테이블 복사 아래 따라해 보시길.

 

5. Toad 사용자만 가능 

Schema Browser 클릭 > Table 조회 > Script 

Script에 있는 내용 복사하여 복사할테이블명만 만들어서 새로 만들어주면 된다. 

 

 

5번은 제일 귀찮았던 Comment 입력까지 한 번에 다 돼서 좋았다.

 

관련글 더보기