• 분류 전체보기 (160)
    • 개인프로젝트 (5)
      • 시연영상모음 (4)
      • 주저리주저리.. (1)
    • 자바스크립트이야기 (69)
      • ExtJS (30)
      • ExtJS 유의사항 (3)
      • HTML5 (1)
      • jQuery (17)
      • jQuery플러그인소개 (9)
      • jQuery UI 소개 (9)
    • 스프링연동하기 (23)
      • spring3 mvc 설정 (4)
      • spring3 mybatis 설정 (4)
      • spring3 기타설정 (11)
      • ibatis and mybatis (4)
    • DB (26)
      • MySQL vs MS-SQL vs O.. (5)
      • MySQL (10)
      • MSSQL (5)
      • Oracle (6)
    • 서버에웹환경구축하기 (13)
      • 1.VirtualBox+CentOS .. (5)
      • 2.JAVA(JDK) 설치 (1)
      • 3.Apache+Tomcat 설치 (3)
      • 4,SVN Server 설치 (1)
      • 5.마리아DB(MariaDB) 설치 (2)
      • 6.몽고DB(MongoDB)설치 (1)
    • 샘플소스 (14)
      • 샘플소스(JAVA) (7)
      • 샘플소스(JSTL) (4)
      • 샘플소스(jQuery/스크립트) (3)
    • 에디터연동 (5)
      • NAVER-스마트에디터 (4)
      • DAUM-다음에디터 (1)
    • 블로그팁 (3)
    • 디지털이야기 (2)
댓글
/141
2014. 8. 12. 15:10
MySQL SELECT 쿼리로 한꺼번에 다른 테이블에 INSERT 하기 (INSERT ... SELECT ... FROM ...)



2014/08/13 - [DB/Oracle] - 오라클(Oracle) 데이터를 일괄로 다른테이블에 INSERT 하기 (INSERT INTO ... SELECT ... FROM ...)


2014/08/13 - [DB/MSSQL] - MS-SQL SELECT 쿼리로 한꺼번에 다른 테이블에 INSERT 하기 (INSERT ... SELECT ... FROM ...)


이번에는 기존에 데이터가 쌓여있는 테이블의 존재하는 모든 데이터를 일괄로 신규로 생성한 테이블에 옮기고자 할때  INSERT ... SELECT ... FROM 을 이용하여 데이터를 이관할 수 있다.

우선 2가지 테이블이 존재한다고 가정하자  굿모닝


* TEMP_TABLE (기존에 데이터가 쌓여있는 테이블)

create table temp_table(
  id varchar(10),
  title varchar(20),
  flag varchar(1)
)ENGINE=InnoDB DEFAULT CHARSET=utf8; 

* TEMP_TABLE에 들어갈 가상의 데이터 INSERT

insert into temp_table(id,title,flag) values('1','제목1','Y');
insert into temp_table(id,title,flag) values('2','제목2','N');
insert into temp_table(id,title,flag) values('3','제목3','Y');
insert into temp_table(id,title,flag) values('4','제목4','Y');
insert into temp_table(id,title,flag) values('5','제목5','N');
insert into temp_table(id,title,flag) values('6','제목6','Y');
insert into temp_table(id,title,flag) values('7','제목7','Y');
insert into temp_table(id,title,flag) values('8','제목8','N');
insert into temp_table(id,title,flag) values('9','제목9','Y'); 

* REAL_TABLE (신규로 특정 컬럼만 이관하기 위한 테이블)

create table real_table(
  id varchar(10),
  title varchar(20)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

※ 위와같이 2개의 테이블 생성한 후 temp_table에만 데이터를 넣어놓은 상태이다

    temp_table -> real_table에 id,title 컬럼만 일괄로 넣고자 한다.

    하지만 조건으로 flag값이 'N'인 데이터만 넣고자 한다.

    그렇다면 결론적으로 real_table에 들어가야 하는 데이터들은

    id값이 2,5,8 인 데이터들만 들어가야 할 것이다 .

 

* INSERT ... SELECT ... FROM  실행

INSERT real_table(id,title)
SELECT id,title
FROM temp_table
WHERE flag = 'N'

* 실행 결과




위와 같이 정상적으로 temp_table의 데이터 중 flag값이 'N' 인 3개의 데이터들이 id,title값만 real_table 테이블에 데이터가 제대로 들어가는 것을 확인 할 수 있다.



슈퍼맨슈퍼맨슈퍼맨



도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!

저작자표시 (새창열림)

'DB > MySQL' 카테고리의 다른 글

MySQL - 널체크(IFNULL 사용하기)  (0) 2014.08.23
MySQL LIMIT를 사용하여 페이징쿼리를 동작시켜보자  (0) 2014.08.15
MySQL 인코딩 UTF-8 설정하기 [한글깨짐문제 해결]  (7) 2014.08.12
MySQL 시퀀스 auto_increment 생성 및 초기화하기  (0) 2014.08.11
MySQL 대소문자 구분 안하기 - lower_case_table_names 변경  (7) 2014.07.10

티스토리툴바