일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- sql
- split
- Radio
- 길이제한
- jQuery
- truncate
- DELETE
- script
- Table
- 문자열
- SHOW
- JSTL
- href
- DB
- insert
- 실행막기
- 속성
- 스크립트
- mouseout
- 칼럼
- substr
- forEach.
- 이벤트 함수
- hide
- javascript
- checked
- Display
- substring
- 마우스
- 광명
- Today
- Total
홈페이지 제작 전문 업체 Infovider 光明
Tibero, Oracle에서 SQL 테이블 복사 본문
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가지 방법 중 아무거나 사용해도 가능하다.
![]() |
|
'프로그래밍 for server' 카테고리의 다른 글
[DB]sql에서 sum함수, count함수 사용법 (0) | 2013.07.17 |
---|---|
[DB]오라클 decode함수 사용법 (0) | 2013.07.16 |
500 Internal Server Error (Error:28) (0) | 2013.07.15 |
HPUX 용량 확인 (0) | 2013.07.12 |
[서버오류]500에러 subquery expected to return a scalar value but returned multiple rows 문제 해결 (0) | 2013.07.11 |