MySQL получить дамп представления - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть представление, которое возвращает довольно много данных. Прямо сейчас, представление загружено в файл как это:

SELECT * FROM view INTO OUTFILE /path/to/file.tmp;

Затем он загружается из этого файла в таблицу:

LOAD DATA INFILE /path/to/file.tmp INTO TABLE table;

И затем mysqldump используется для создания дампа этой таблицы (на самом деле для нескольких таблиц первые два шага повторяются еще несколько раз, а затем запускается mysqldump).

Есть ли лучший способ сделать это? В идеале я хотел бы сделать это без необходимости что-либо сохранять в файл. Можно ли просто создать дамп sql данных из представления одним оператором?

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Не с mysqldump.mysqldump просто экспортирует определения представлений, а не данные.

Шаг за шагом можно уменьшить, используя синтаксис INSERT ... SELECT.То есть вставьте прямо в новую таблицу из представления.Тогда mysqldump это.Нет необходимости в файле file.tmp.Что-то вроде

INSERT INTO table SELECT * FROM view;

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

1 голос
/ 21 ноября 2011
INSERT INTO table (col1, col2, col3...)
    SELECT col1, col2, col3... FROM view

Должен сделать свое дело.

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