2014-11-12 2 views
0

프로덕션 서버의 다른 테이블과 동일한 형식으로 개발 상자에 테이블이 있습니다. 개발 데이터는 테이블을 만들 권한이없는 프로덕션에 추가/삽입되어야합니다.다른 서버의 MySQL 추가/삽입

새로운 테이블 develop_table을 만들 수 없기 때문에 insert into production_table select * from develop_table과 같은 작업을 할 생각이었습니다.이 작업은 불가능합니다.

Sequal Pro을 사용하고 있는데 내 개발 테이블을 파일 (CSV/SQL)로 내보내는 방법이 있는지 모르겠다. 그런 다음 내 클라이언트 측에서 해당 파일을로드하도록 명령을 실행할 수 있습니다. 생산 테이블을 덮어 쓰지 않고 생산합니까?

답변

2

프로덕션 테이블에 primray/unique 키가 있다고 가정하면 개발 서버의 데이터를 .csv 파일로 내 보낸 다음 load data으로 프로덕션 서버로로드 할 수 있습니다. 중복 행.

예 : 개발 서버에서

당신이 .csv 데이터를 파일로 내 보내야합니다. your_table.csv 파일을 복사, 프로덕션 서버에서

select * 
    into outfile '/home/user_dev/your_table.csv' 
    fields terminated by ',' optionally enclosed by '"' 
    lines terminated by '\n' 
from your_table; 

load data...를 사용하여로드 : 당신은 그렇게 select into...을 사용할 수 있습니다

load data infile '/home/user_prod/your_table.csv' 
replace -- This will replace any rows with duplicated primary | unique key values. 
     -- If you don't want to replace the rows, use "ignore" instead of "replace" 
into table your_table 
fields terminated by ',' optionally enclosed by '"' 
lines terminated by '\n'; 

추가 정보에 대한 참조 설명서를 (링크 위에서 제공) 참조하십시오.

+0

'columns/lines'은 선택 사항입니다. 나는'Sequel Pro'에서 테이블을 디폴트로 다른 포맷으로 export했습니다. –

+0

@ B.Mr.W. 시행 착오를 거듭 한 후에 커맨드 라인 도구를 사용하는 것이 이런 종류의 일에 최고의 선택이라고 확신했습니다. 물론 Sequel Pro를 사용하여'.csv' 파일을 내보낼 수 있습니다 ... 헤더가있는 경우 'load data ...'문에'ignore 1 lines'을 추가하여 열 헤더를 무시하십시오. – Barranka

+0

@ B.Mr.W. 또한 원격지에서 데이터에 액세스 할 수있는 ['FEDERATED' 스토리지 엔진] (http://dev.mysql.com/doc/refman/5.5/en/federated-storage-engine.html)을 살펴보십시오. MySQL 데이터베이스 [...]. 로컬 FEDERATED 테이블을 쿼리하면 원격 (페더 레이 티드) 테이블에서 데이터를 자동으로 가져옵니다. 로컬 테이블에는 데이터가 저장되지 않습니다. * – Barranka

관련 문제