홈페이지 제작 전문 업체 Infovider 光明

Tibero, Oracle에서 SQL 테이블 복사 본문

프로그래밍 for server

Tibero, Oracle에서 SQL 테이블 복사

GuruMaster 慧月 2013. 7. 10. 18:42

DB상에서 테이블을 한쪽으로 옮겨놓고 데이터를 새로 쌓아야 하는 상황이 가끔온다.


그러면, 아무래도 테이블 구조를 복사해 쓰거나 테이블을 생성 후 데이터를 옮겨야 하는데, 번거롭다.


아래 소개하는 4가지 SQL구문을 이용하면 간단히 복사 가능하다.


 


1. 테이블 복사 - 스키마+데이터


create table new_table_name as select * from old_table_name [where절];


- 빨간색에 해당하는 부분에 새테이블명과 이전 테이블 명을 쓰면 된다.


- as select 이하 구문을 new_table_name으로 스키마와 데이터를 복사한다는 뜻인데, 따라서 as select 이하 구문을 잘 조절하면 복사하고 싶은 모양대로 복사도 가능하다.


 


2. 테이블 구조만 복사


create table new_table_name as select * from old_table_name where 1=2;


- where 1=2가 거짓이므로 데이터없이 스키마만 복사가 되는 것이다.


- 그러므로 1=2대신 거짓이 되는 조건 아무거나 상관없다.


 


3. 데이터만 복사 - 복사해갈 테이블이 이미 있는 경우


insert into target_table_name select * from source_table_name [where절];


- select 이하 구문으로 나온 값을 새로운 테이블로 복사하는 것이다.


- 실제 1번 방법 = 2번+3번 방법과 동일하다.(같은 결과만 낸다)


 


4. 테이블 이름 변경


alter table old_table_name rename to new_table_name;


 


cf. 테이블의 모든 데이터 삭제


delete from table_name [where절];


 


나같은 경우 1번으로 바로 복사를 한뒤에 기존 테이블의 모든 데이터를 삭제하는 방법보다는


4번으로 원본테이블명을 바꾼 후 2번으로 테이블 구조만 바꿔서 사용하는 것을 선호하는 편이다.


2가지 방법 중 아무거나 사용해도 가능하다.



인페르노 1
국내도서
저자 : 댄 브라운(Dan Brown) / 안종설역
출판 : 문학수첩 2013.07.04
상세보기


Comments