일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
31 |
- 단맛이나는떡
- 윈도우10
- Azure
- EditPlus
- 달달한떡
- 터틀랜드
- 말티즈
- MS Azure
- 간단한마늘빵
- 동물까페
- 애저 클라우드 서버
- 겨울왕국
- 감기
- 퇴촌
- 집에서마늘빵
- 소풍
- 디즈니
- 육아정보
- PHP
- 모아나
- 카스테라앙금인절미
- 디즈니 애니메이션
- 함께
- 애니메이션
- 윈도우10 설치파일
- 앙금이들어있는떡
- 아이들과
- mysql
- 고화질 배경화면
- 에디트플러스
- Today
- Total
RainStar Story
MySql」select를 이용한 table 데이터 백업 이동 본문
테이블에 있는 데이터를 그대로 다른 테이블로 복사하는 간단한 방법입니다.
테이블 원본 그대로 이동시키는 방법과 특정컬럼을 선택하여 복사할 수 있습니다.
물론 조건 값을 설정해서 원하는 결과값만 복사할 수도 있습니다.
모든 방법은 테이블을 생성해 놓고 시작해야 합니다.
첫번째 테이블을 그대로 복사하는 방법으로 insert into 의 value 값을 select 테이블을 지정하는 형식입니다.
table1 의 데이터를 table2로 복사하는 쿼리는 아래와 같습니다.
INSERT INTO table2 SELECT * FROM table1
단, 새로생성한 table2와 데이터를 가져올 table1의 구조 및 컬럼속성이 동일해야 합니다.
두번째 특정 컬럼의 데이터만 복사하는 방법입니다.
테이블의 구조가 다르더라도 컬럼속성만 주의하면 원하는 데이터를 복사할 수 있습니다.
INSERT INTO table2 ('col1', 'col2', 'col3')
SELECT seq, id, pass FROM table1
각 컬럼의 속성이 같은지 체크하시고 진행하면 되겠습니다.
세번째 조건에 부합되는 결과값만 이동시키는 방법으로 where 조건만 걸어주면 됩니다.
INSERT INTO table2 ('col1', 'col2', 'col3')
SELECT seq, id, pass FROM table1 WHERE seq > '11'
예제 )
그누보드4 게시판 table -> 그누보드5 게시판 table
먼저 그누보드5에 신규 게시판을 생성합니다.
그누보드4와 그누보드5의 컬럼을 비교해보니 그누보드4에 있던 wr_trackback 컬럼이 그누보드5에는 없으며 추가된 컬럼이 몇개 있었습니다.
일단 그누보드4의 모든 컬럼을 다 가지고 있으니 wr_trackback 컬럼만 추가해 주면 손쉽게 끝낼 수 있겠네요.
새로 생성한 게시판 table에 wr_trackback 컬럼을 추가합니다.
데이터 복사 쿼리 --->
insert into `g5_write_online` (`wr_id`, `wr_num`, `wr_reply`, `wr_parent`, `wr_is_comment`, `wr_comment`, `wr_comment_reply`, `ca_name`, `wr_option`, `wr_subject`, `wr_content`, `wr_link1`, `wr_link2`, `wr_link1_hit`, `wr_link2_hit`, `wr_trackback`, `wr_hit`, `wr_good`, `wr_nogood`, `mb_id`, `wr_password`, `wr_name`, `wr_email`, `wr_homepage`, `wr_datetime`, `wr_last`, `wr_ip`, `wr_1`, `wr_2`, `wr_3`, `wr_4`, `wr_5`, `wr_6`, `wr_7`, `wr_8`, `wr_9`, `wr_10`, `wr_ccl`, `wr_singo`, `wr_zzal`, `wr_related`, `wr_comment_ban`, `wr_link_write`, `wr_contents_price`, `wr_contents_domain`, `wr_umz`, `wr_subject_font`, `wr_subject_color`, `wr_subject_bold`, `wr_anonymous`, `wr_comment_hide`, `wr_read_level`, `wr_kcb_use`, `wr_qna_status`, `wr_qna_point`, `wr_qna_id`, `wr_is_mobile`, `wr_google_map`, `wr_view_block`, `wr_auto_move`, `wr_link1_target`, `wr_link2_target`, `wr_contents_preview`, `wr_lightbox`, `wr_align`, `wr_to_id`, `wr_marketdb`, `wr_key_password`, `wr_hidden_link1`, `wr_hidden_link2`, `wr_rate`)
select * from `g4_write_online`
Query : insert into `g5_write_online` (`wr_id`, `wr_num`, `wr_reply`, `wr_parent`, `wr_is_comment`, `wr_comment`, `wr_comment_reply`, `c...
Error Code : 1136
Column count doesn't match value count at row 1
Execution Time : 00:00:00:000
Transfer Time : 00:00:00:000
Total Time : 00:00:00:000
두 테이블의 컬럼이 다르다면 위와 같은 메세지가 출력됩니다. 체크해보니 컬럼이 다르네요 두 테이블을 비교해가며 매칭되는 컬럼만 다시 정의했습니다.
INSERT INTO `g5_write_online` (
`wr_id`,
`wr_num`,
`wr_reply`,
`wr_parent`,
`wr_is_comment`,
`wr_comment`,
`wr_comment_reply`,
`ca_name`,
`wr_option`,
`wr_subject`,
`wr_content`,
`wr_link1`,
`wr_link2`,
`wr_link1_hit`,
`wr_link2_hit`,
`wr_trackback`,
`wr_hit`,
`wr_good`,
`wr_nogood`,
`mb_id`,
`wr_password`,
`wr_name`,
`wr_email`,
`wr_homepage`,
`wr_datetime`,
`wr_last`,
`wr_ip`,
`wr_1`,
`wr_2`,
`wr_3`,
`wr_4`,
`wr_5`,
`wr_6`,
`wr_7`,
`wr_8`,
`wr_9`,
`wr_10`
)
SELECT * FROM g4_write_online
22207 row(s) affected, 30 warning(s)
Execution Time : 00:00:00:765
Transfer Time : 00:00:00:000
Total Time : 00:00:00:765
Note : To see complete list of warning(s), enable Tools -> Preferences -> General -> Show Warning(s) in Messages Tab
'Developer > PHP / MySql' 카테고리의 다른 글
PHP」서브도메인(2차도메인) 세션공유 - 호스팅 이용시 처리방법 (0) | 2017.11.01 |
---|---|
PHP」explode() : 지정한 문자를 기준으로 문자열을 분할하여 배열로 저장 (0) | 2017.11.01 |