Дамп MySQL выглядит как таблица с данными
Скажем, у меня есть представление в моей базе данных, и я хочу отправить файл кому-то, чтобы создать этот вывод представления в виде таблицы в своей базе данных.
mysqldump, конечно, экспортирует только оператор "create view..." (ну, ладно, он включает в себя таблицу create, но нет данных).
То, что я сделал, просто дублирует представление как реальную таблицу и дамп. Но для большого стола он медленный и расточительный:
create table tmptable select * from myview
Не удалось создать script, который имитирует поведение mysqldump и делает это, есть ли лучший способ?
Ответы
Ответ 1
Один из вариантов - сделать запрос в CSV файл и импортировать его. Чтобы выбрать файл CSV:
От http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/
SELECT order_id,product_name,qty
FROM orders
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
Ответ 2
ОК, поэтому, основываясь на комментарии к отказу от CSV, начните с ответа Павла. Внесите в него следующие изменения:
- FIELDS TERMINATED BY ','
+ FIELDS TERMINATED BY ',' ESCAPED BY '\'
Когда вы закончите с этим, со стороны импорта вы выполните "load data infile" и используйте те же завершенные/закрытые/экранированные операторы.