테이블 데이터 복사 그거/DB2013. 4. 30. 14:46
A 테이블
ID VARCHAR2 (63) NOT NULL,
CONTENT VARCHAR2 (1000) NOT NULL,
CRE_DATE DATE NOT NULL,
UPD_DATE DATE NOT NULL,
TYPE VARCHAR2 (5) NOT NULL,
USER_ID VARCHAR2 (63),
GUBUN CHAR (1),
ETC VARCHAR2 (10),
DOMAIN_ID VARCHAR2 (63) DEFAULT 'DEFAULT' NOT NULL
A 테이블의 데이터
ID |
CONTENT |
CRE_DATE |
UPD_DATE |
TYPE |
USER_ID |
GUBUN |
ETC |
DOMAIN_ID |
EX00001 |
내용 |
2013/04/30 |
2013/04/30 |
ERROR |
LUCKY |
U |
N |
DOMAIN1 |
EX00002 |
내용 | 2013/04/30 |
2013/04/30 |
ERROR |
LUCKY |
U |
N |
DOMAIN2 |
... |
... |
... |
... |
... |
... |
... |
... |
.. |
EX00100 |
내용 |
2013/04/30 |
2013/04/30 |
ERROR |
LUCKY |
U |
N |
DOMAIN1 |
위와 같은 상황에서
A 테이블의 데이터 중에 DOMAIN_ID 가 'DOMAIN1' 인 데이터를 B 테이블을 새로 만들어서 복사하고자 할 경우
create table B
as
select
ID, CONTENT, CRE_DATE, UPD_DATE, TYPE, USER_ID, GUBUN, ETC, DOMAIN_ID
from A where domain_id = 'DOMAIN1'
구문을 사용하면 된다.
이걸 이용해서, A 테이블에서 DOMAIN_ID 가 'DOMAIN1' 인 데이터에 대해서
DOMAIN_ID 를 'DOMAIN2' 로 A 테이블에 복사하고자 할 경우에는
1. DOMAIN1 데이터를 B 테이블에 임시 복사
2. B 테이블의 데이터를 A 테이블에 DOMAIN2 로 변경해서 복사
를 하면 된다.
QUERY 는 아래처럼~
create table B as select * from a where domain_id = 'DOMAIN1';
insert into A values(id, content, cre_date, upd_date, type, user_id, gubun, etc, domain_id)
select id, content, sysdate, sysdate, type, user_id, gubun, etc, 'DOMAIN2' from B;
==> 더 간단하게는... 아래와 같이~
insert into A values(id, content, cre_date, upd_date, type, user_id, gubun, etc, domain_id)
select id, content, sysdate, sysdate, type, user_id, gubun, etc, 'DOMAIN2' from A where domain_id = 'DOMAIN1';
'그거 > DB' 카테고리의 다른 글
오라클 리스너 에러 (0) | 2013.06.21 |
---|---|
Oracle 11g EM 비밀번호 만료 오류 (0) | 2012.01.31 |
Oracle 사용자 계정 잠금/해제, 비밀번호 만료/해제 (2) | 2011.10.05 |
파티션 테이블 조회하기 (0) | 2011.07.26 |
[DB] MSSQL 실행된 쿼리 조회하기... (0) | 2010.01.29 |