URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 79447
[ Назад ]

Исходное сообщение
"mysqldump и раздельные INSERT запросы для таблицы"

Отправлено zeiter , 25-Мрт-08 12:30 
Доброго дня.
Подскажите, есть ли способ с помощью mysqldump сделать бэкап с раздельными INSERT для каждой таблицы.
Т.е. вместо INSERT INTO table1 (...) VALUES (1...), (2...), (3...)
получить:
INSERT INTO table1 (...) VALUES (1...);
INSERT INTO table1 (...) VALUES (2...);
INSERT INTO table1 (...) VALUES (3...);

???

Если mysqldump не умеет такого, тогда чем можно сделать, акромя phpMyAdmin?


Содержание

Сообщения в этом обсуждении
"mysqldump и раздельные INSERT запросы для таблицы"
Отправлено angra , 25-Мрт-08 20:40 
Да можно, man mysqldump, у меня ушло две секунды, чтобы найти там нужную опцию, а у вас?

"mysqldump и раздельные INSERT запросы для таблицы"
Отправлено zeiter , 26-Мрт-08 10:29 
>Да можно, man mysqldump, у меня ушло две секунды, чтобы найти там
>нужную опцию, а у вас?

Сейчас почитаю man mysqldump, ибо mysqldump --help ничем не помог.
Хотя.... если там одно и тоже....



"mysqldump и раздельные INSERT запросы для таблицы"
Отправлено angra , 26-Мрт-08 16:00 
Ну тогда вам стоит качать скилл "быстрый поиск в документации" :)
Нет необходимости читать весь man чтобы найти одну опцию, просто ищите по ключевым словам, например в вашем случае:
mysqldump --help |grep insert
  --add-locks         Add locks around insert statements.
  -c, --complete-insert
                      Use complete insert statements.
  --delayed-insert    Insert rows with INSERT DELAYED;
  -e, --extended-insert
  --insert-ignore     Insert rows with INSERT IGNORE.
                      --quick, --extended-insert, --lock-tables, --set-charset,
                      --create-options, --quick, --extended-insert,
complete-insert                   FALSE
delayed-insert                    FALSE
extended-insert                   TRUE
insert-ignore                     FALSE

Сразу бросается в глаза extended-insert, так как только эта опция включена и краткое описание других позволяет их исключить. Дальше ищем ее в man и читаем
o  --extended-insert, -e
  Use multiple-row INSERT syntax that include several VALUES lists. This results in a smaller dump file and speeds up inserts when the file is reloaded.

А вообще поиск по insert в самом man выдает первым вхождением --extended-insert и --skip-extended-insert, поэтому две секунды это чтобы набрать /insert для поиска.


"mysqldump и раздельные INSERT запросы для таблицы"
Отправлено zeiter , 27-Мрт-08 07:55 
>
>А вообще поиск по insert в самом man выдает первым вхождением --extended-insert
>и --skip-extended-insert, поэтому две секунды это чтобы набрать /insert для поиска.
>

В общем очерь рад, что разобрался с вашей помощью.
Ибо про опцию --extended-insert знал, но про --skip-extended-insert в хелпе ни слова.
До мана, чтобы его полностью прочитать, так и не добрался.
На сервере mysql был собран из сорсов без манов.
Благодарю.

Получилось:


mysqldump -u${DB_USERNAME} \
                         -p${DB_USERPASS} \
                         -h${DB_HOST} \
                         --complete-insert \
                         --skip-extended-insert \
                         --databases ${DB_NAME} > ${STORE_DIR}/${FILE_NAME}