2009-02-12 2 views
10

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

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

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

create table tmptable select * from myview 

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

+0

В представлении содержится пространственный столбец, с которым у меня были проблемы с импортом с использованием файлов CSV. :( – barryhunter

+1

Kinda, закрывающий цикл на этом, наконец-то обернулся, чтобы убрать и освободить скрипт, который я разбил, чтобы решить эту проблему. Https://github.com/barryhunter/fakedump - он делает это как предложено, просто запускает запрос типа " выберите * из представления "и фактически напишите его в формате mysqldump. – barryhunter

ответ

4

Одним из вариантов было бы сделать запрос в файл 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' 
+1

Если у вас нет доступа к серверной оболочке mysql, это не сработает. Любые другие решения? –

3

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

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

Когда вы закончите с этим, на стороне импорта вы будете делать «INFILE данных нагрузки» и использовать одни и те же прекращено/закрытых/спасся заявления.

+0

Просто укажите, что если вы используете \ you необходимо избегать escape-символа, например, «FIELDS TERMINATED BY», «ESCAPED BY» \\ ''. –

Смежные вопросы