2015-01-13 4 views
0

어제 미스터리를 만들었고 mysql 테이블의 일부 행을 삭제했습니다 (LIMIT 2000을 설정 한 행운).두 테이블을 병합하는 방법 (기본 키 및 범위 제한 포함)

이제 백업을 사용하여 삭제 된 행만 다시 삽입하려고합니다. 내가 가지고 :

tb_production : 보시다시피

id (primary key) col1  col2 
-------------------------------- 
    1    data  data 
    2    data  data 
    6    data  data 
    9    data  data 

, 누락 행이 있습니다.

tb_backup : I에 유래 (How can I merge two MySQL tables?) 여기에 좋은 해답을 발견했습니다

id (primary key) col1  col2 
    -------------------------------- 
     1    data  data 
     2    data  data 
     3    data  data 
     4    data  data 
     5    data  data 
     6    data  data 
     7    data  data 
     8    data  data 
     9    data  data 

, 주어진 대답 는 지금은 (위) 생산 테이블에 백업 테이블에서 누락 된 행을 삽입 할 :

INSERT IGNORE INTO table_1 SELECT * FROM table_2;

내가 다시는 실수를하고 싶지 않아, 그래서 당신 질문 :

생산 테이블에 백업 테이블에서 행을 병합하는 방법

, 생산 테이블에 기존 행을 덮어 쓰지 않고를 LIMIT 2000으로 다시 표시 하시겠습니까?

+0

다음 시도하세요? –

+0

@ Vamshi.goli 예 2 주 오래된 데이터베이스 백업이 있습니다. 아무 것도없는 것보다 좋습니다. 실행중인 데이터베이스에 삽입 할 테이블의 행을 사용하고 싶습니다. – lickmycode

+0

이제 기존 데이터베이스에 해당 데이터베이스를 삽입하려고합니다 !!!!!!!!! –

답변

0

당신은 당신의 백업 데이터가 않았다 .... 나는 당신의 질문에 명확하지 않다 쿼리

INSERT INTO tb_production(id,col1,col2) 
    SELECT bkp.id,bkp.col1,bkp.col2 FROM tb_backup bkp LEFT JOIN tb_production prd 
    ON bkp.id=prd.id WHERE prd.id IS NULL ORDER BY bkp.id LIMIT 2000; 
관련 문제