2012-04-12 2 views
1

mysqldump를 사용하여 MyISAM 병합 테이블로 만든 테이블을 덤프 할 수 없다.병합 테이블의 mysqldump

시도 할 때 테이블 작성 구문이 포함 된 파일을 덤프 (단순히)하지만 원본 테이블의 데이터는 덤프하지 않습니다.

예상 있나요? 또는 알려진 버그입니까? 어떻게 MRG_MyISAM 테이블에 mysqldump의 동작을 복제 할 수 있습니까?

+0

정확한 코드는 덤프에 사용하고 있습니까? – citizenen

답변

1

예상됩니다. MERGE 테이블은 단지 MyISAM 테이블의 매핑이다.

기본 테이블을 덤프해야합니다.

당신은 MERGE 테이블을 mysqldump에하는 에뮬레이션의 어떤 종류를 원한다면 지금

USE mydb 
CREATE TABLE myhardtable LIKE mymergetable; 
ALTER TABLE myhardtable ENGINE=MyISAM; 
INSERT INTO myhardtable SELECT * FROM mymergetable; 

(누구의 스토리지 엔진 인 표라고 mydb.mymergetable Mrg_MyISAM 용), 단지 이렇게 :

mysqldump -u... -p... mydb myhardtable > /root/MyMergeData.sql 

이 작업을 수행 할 수도 있습니다

SELECT * INTO OUTFILE '/root/MyMergeData.sql' 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
FROM mydb.myhardtable; 
+0

이것은 내가 상상 한 것입니다 : (새 테이블에 복사하는 간헐적 인 단계를 저장하려고했습니다 (큰 것입니다). outfile에 선택 전략을 사용하면 시작 부분에 테이블 생성 섹션이 포함됩니다 la mysqldump? 이것은 다른 DB/서버로 쉽게 가져 오기 위해 유용 할 것입니다. – DNadel