it-roy-ru.com

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

со следующим утверждением:

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

151
rexford

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

mysqldump --extended-insert=FALSE 

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

239
driis

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

-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-вкладыш продлен

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

1
israel berko