Mysql Как выходить в формате CSV, с вариантами листов?

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

Я полагаю, что-то вроде:

SELECT *
FROM product
WHERE active = 1
INTO OUTFILE '/root/tmp/data.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

SELECT *
FROM member
WHERE active = 1
INTO OUTFILE '/root/tmp/data.csv' // using the same .csv
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

etc...

1 ответ

Решение

Вы не можете добавить к существующему файлу, используя INTO OUTFILE,

https://dev.mysql.com/doc/refman/5.7/en/select-into.html говорит:

имя_файла не может быть существующим файлом, что, среди прочего, предотвращает такие файлы, как /etc/passwd и таблицы базы данных от уничтожения.

Таким образом, вам придется выводить в отдельный файл для каждой таблицы, а затем объединять их вместе (то есть, не используя SQL).

Другие вопросы по тегам