Дамп представления MySQL в виде таблицы с данными

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

mysqldump, конечно, экспортирует только оператор «create view...» (ну, ладно, он включает в себя создание таблицы, но не данные).

Что я сделал, так это просто продублировал представление как реальную таблицу и выгрузил ее. Но для большой таблицы это медленно и расточительно:

create table tmptable select * from myview

Если не считать создания сценария, который имитирует поведение mysqldump и делает это, есть ли лучший способ?


person Community    schedule 12.02.2009    source источник
comment
Представление включает пространственный столбец, с которым у меня возникли проблемы при импорте с использованием файлов CSV. :(   -  person barryhunter    schedule 12.02.2009
comment
Как бы замыкая цикл на этом, наконец-то добрался до уборки и выпуска сценария, который я создал, чтобы решить эту проблему. github.com/barryhunter/fakedump - он делает то, что предлагается, просто запуская запрос, например select * from просмотреть и фактически записать его в формате, подобном mysqldump.   -  person barryhunter    schedule 27.08.2017


Ответы (2)


Один из вариантов — сделать запрос в 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'
person Community    schedule 12.02.2009
comment
Если у вас нет доступа к оболочке сервера mysql, это не сработает. Любые другие решения? - person Artem Russakovskii; 01.11.2009

Итак, основываясь на вашем комментарии об ошибке CSV, начните с ответа Пола. Внесите в него следующие изменения:

 - FIELDS TERMINATED BY ','
 + FIELDS TERMINATED BY ',' ESCAPED BY '\'

Когда вы закончите с этим, на стороне импорта вы сделаете «загрузку файла данных» и будете использовать те же операторы Terminated/End/Escaped.

person Community    schedule 19.05.2009
comment
Просто чтобы указать, что если вы используете \, вам нужно экранировать escape-символ, например, FIELDS TERMINATED BY ',' ESCAPED BY '\\'. - person Alix Axel; 28.04.2013