MySQLDump один оператор INSERT для каждой строки данных


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 для каждой строки? Спасибо за вашу помощь!

Ответы:


279

Использование:

mysqldump --extended-insert=FALSE 

Помните, что несколько вставок будут медленнее, чем одна большая вставка.


75
--skip-extended-insert кажется правильным для меня синтаксисом (с использованием mysqldump версии 10.13)
Исаак Бетеш

17
Да, медленнее, но у многих текстовых редакторов возникают проблемы с очень длинными строками текста, и если в таблицах содержится огромное количество данных, это то, что произойдет.
Джахмик

mysqldump --opt --skip-extended-insertили mysqldump --opt --extended-insert=FALSEработа
Измир Рамирес

О, МОЙ БОГ! Я перешел на новую версию, которая вызвала эту проблему и многие из моих автоматических сценариев перестали работать. Я думал, что я облажался, но это похоже на легкое исправление. Спасибо, что поделился!
Варун Верма

11
Это хорошо, потому что теперь я могу сделать git diffна двух разных дампах базы данных и иметь четкое представление о том, что было изменено.
Рольф

9

В более новых версиях были внесены изменения в флаги: из документации:

-extended-insert, -e

Напишите операторы INSERT, используя многострочный синтаксис, включающий несколько списков VALUES. Это приводит к уменьшению размера файла дампа и ускоряет вставку при перезагрузке файла.

--opt

Эта опция, включенная по умолчанию, является сокращением для комбинации --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick - набор-кодировки. Это дает быструю операцию дампа и производит файл дампа, который может быть быстро перезагружен на сервер MySQL.

Поскольку опция --opt включена по умолчанию, вы указываете только обратное, а --skip-opt отключает несколько настроек по умолчанию. См. Обсуждение групп опций mysqldump для информации о выборочном включении или отключении подмножества опций, на которые влияет --opt.

--skip-вкладыш продлен

Отключить расширенную вставку

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.