2014/08/12 - [DB/MySQL] - MySQL SELECT 쿼리로 한꺼번에 다른 테이블에 INSERT 하기 (INSERT ... SELECT ... FROM ...)
2014/08/13 - [DB/MSSQL] - MS-SQL SELECT 쿼리로 다른 테이블로 INSERT (INSERT SELECT FROM , SELECT INTO FROM)
오라클에서 데이터 이관하는 작업과 같은 일괄로 다른 테이블에 INSERT해야하는 경우가 생긴다.
이럴경우 INSERT INTO .. SELECT ... FROM 을 이용하여 다른 테이블에 데이터를
일괄 등록이 가능하다
간단하게 진행을 해보도록 하자
1. original_table 생성 (기존 테이블)
create table original_table ( id varchar(10), title varchar(20), flag varchar(1) )
2. new_table 생성(데이터 이관하기 위한 신규 테이블)
create table new_table ( id varchar(10), title varchar(20) )
3. original_table에 임의 데이터 생성
insert into original_table (id,title,flag) values('1','제목11','Y'); insert into original_table (id,title,flag) values('2','제목22','Y'); insert into original_table (id,title,flag) values('3','제목33','Y'); insert into original_table (id,title,flag) values('4','제목44','Y'); insert into original_table (id,title,flag) values('5','제목55','Y'); insert into original_table (id,title,flag) values('6','제목66','Y'); insert into original_table (id,title,flag) values('7','제목77','Y'); insert into original_table (id,title,flag) values('8','제목88','N'); insert into original_table (id,title,flag) values('9','제목99','Y');
4. original_table -> new_table 로 flag값이 N인 데이터만 이관
(예상 결과 = id값이 8인 데이터만 insert 되겠지? ㅎㅎ)
INSERT INTO new_table(id,title) SELECT id,title FROM original_table WHERE flag = 'N'
5. 신규 테이블에 INSERT 데이터 확인
SELECT * FROM new_table
- 실행결과
역시 예상대로 ID값이 8인 데이터만 INSERT 되었다.
일괄로 모든 데이터 넣고 싶을경우에는 WHERE 조건만 빼면 될것이다.
도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!
Oracle - if ~ else 조건문 사용하기 : DECODE (0) | 2014.08.24 |
---|---|
오라클 - 널체크(NVL 사용하기) (0) | 2014.08.23 |
ORACLE 오라클 rownum을 이용하여 페이징 처리하기 (0) | 2014.08.15 |
오라클 계층형 트리구조 쿼리 (재귀호출) - START WITH .. CONNECT BY PRIOR (0) | 2014.08.12 |
오라클(Oracle) sequence 생성, 등록, 최종 시퀀스값 조회하기 (2) | 2014.08.11 |