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

Відповіді:


278

Використання:

mysqldump --extended-insert=FALSE 

Майте на увазі, що кілька вставок будуть повільнішими, ніж одна велика вставка.


75
--skip-extension-insert, здається, для мене правильний синтаксис (використовуючи mysqldump версії 10.13)
Ісаак Бетеш

17
Так повільніше, але багато редакторів тексту мають проблеми з надзвичайно довгими рядками тексту, і якщо в таблицях є величезна кількість даних, саме це і станеться.
Яхміч

mysqldump --opt --skip-extended-insertабо mysqldump --opt --extended-insert=FALSEробота
Ізмір Рамірес

О БОЖЕ МІЙ! Я перейшов на нову версію, яка призвела до виходу з ладу цієї проблеми та багатьох моїх автоматизованих сценаріїв. Я думав, що мене накрутили, але це здається легким виправленням. Дякую, що поділились!
Варун Верма

11
Це добре, тому що тепер я можу робити git diffдва різних дампів баз даних і мати чітке уявлення про те, що було змінено.
Рольф

9

У новіших версіях зміни були внесені до прапорів: з документації:

- розширений-вставити, -е

Напишіть заяви INSERT, використовуючи багаторядковий синтаксис, який включає кілька списків VALUES. Це призводить до зменшення файлу дампа і прискорення вставок, коли файл завантажується.

--опт

Цей параметр, включений за замовчуванням, - це скорочення для комбінації --add-drop table --add-locks --create-options --disable-keys - Extended-insert --lock-table --quick - набір-шафа. Це дає операцію швидкого скидання і створює дамп-файл, який можна швидко перезавантажити на сервер MySQL.

Оскільки опція --opt увімкнена за замовчуванням, ви вказуєте лише її зворотній варіант, --skip-opt для відключення декількох параметрів за замовчуванням. Див. Обговорення груп опцій mysqldump для отримання інформації про вибіркове включення або відключення підмножини параметрів, на які впливає --opt.

--skip-розширений-вставка

Вимкніть розширену вставку

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.