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).