각 데이터 행에 대해 하나의 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.