각 데이터 행에 대해 하나의 INSERT 문을 MySQLDump


179

다음 진술로 :

mysqldump --complete-insert --lock-all-tables --no-create-db 
--no-create-info --extended-insert --password=XXX -u XXX 
--dump-date yyy > yyy_dataOnly.sql

다음과 같은 INSERT 문을 얻습니다.

INSERT INTO `table` VALUES (1,'something'),(2,'anything'),(3,'everything');

내 경우에 필요한 것은 다음과 같습니다.

INSERT INTO `table` VALUES (1,'something');
INSERT INTO `table` VALUES (2,'anything');
INSERT INTO `table` VALUES (3,'everything');

"mysqldump"에게 각 행에 대해 새로운 INSERT 문을 작성하도록 지시하는 방법이 있습니까? 당신의 도움을 주셔서 감사합니다!

답변:


278

사용하다:

mysqldump --extended-insert=FALSE 

여러 개의 인서트가 하나의 큰 인서트보다 느리다는 점에 유의하십시오.


75
--skip-확장 - 삽입이 (가) (mysqldump를 버전 10.13 사용) 나에 대한 올바른 구문이 될 나타납니다
이삭 Betesh을

17
더 느리지 만, 많은 텍스트 편집기는 매우 긴 텍스트 줄에 문제가 있으며 테이블에 많은 양의 데이터가 있으면 그 일이 일어날 것입니다.
Jahmic

mysqldump --opt --skip-extended-insert또는 mysqldump --opt --extended-insert=FALSE
Yzmir 라미레즈

세상에! 새 버전으로 마이그레이션하여이 문제가 발생했으며 많은 자동 스크립트가 실패했습니다. 나는 내가 망가 졌다고 생각했지만 이것은 쉬운 수정처럼 보입니다. 공유해 주셔서 감사합니다!
Varun Verma

11
이제 git diff두 개의 서로 다른 데이터베이스 덤프를 수행하고 변경된 내용을 명확하게 파악할 수 있기 때문에 좋습니다 .
Rolf

9

최신 버전에서는 다음과 같이 플래그가 변경되었습니다.

-확장 삽입, -e

여러 VALUES 목록을 포함하는 다중 행 구문을 사용하여 INSERT 문을 작성하십시오. 결과적으로 덤프 파일이 작아지고 파일을 다시로드 할 때 삽입 속도가 빨라집니다.

--고르다

기본적으로 활성화 된이 옵션은 --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick- 세트 문자셋. 빠른 덤프 작업을 제공하고 MySQL 서버로 빠르게 다시로드 할 수있는 덤프 파일을 생성합니다.

--opt 옵션은 기본적으로 활성화되어 있으므로 --skip-opt 옵션 만 지정하면 여러 기본 설정을 해제 할 수 있습니다. --opt의 영향을받는 옵션의 하위 집합을 선택적으로 활성화 또는 비활성화하는 방법에 대한 내용은 mysqldump 옵션 그룹에 대한 설명을 참조하십시오.

--skip-extended-insert

확장 삽입 끄기

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.