Дамп MySQL view как таблица с данными - PullRequest
12 голосов
/ 12 февраля 2009

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

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

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

create table tmptable select * from myview

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

Ответы [ 2 ]

4 голосов
/ 12 февраля 2009

Один из вариантов - сделать запрос в CSV-файл и импортировать его. Чтобы выбрать в файл CSV:

Из http://www.tech -recipes.com / rx / 1475 / save-mysql-запрос-результатов-в-текст-или-csv-файл /

SELECT order_id,product_name,qty
FROM orders
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
3 голосов
/ 19 мая 2009

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

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

Когда вы закончите с этим, на стороне импорта вы выполните "загрузку данных infile" и будете использовать те же самые завершенные / вложенные / экранированные операторы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...