如何 mysql 将多个输出文件放入单个压缩 zip

Howto mysql multiple outfiles into a single compressed zip

  1. 我是 运行 Xubuntu 16.04 和 MariaDB MySQL。
  2. 这 3 个文件(customers.csv、items.csv、invoices.csv)是由 MySQL INTO OUTFILE 命令如下所示。
  3. 这 3 个文件需要放入一个 zip 文件中 (report.zip)。
  4. 这3个文件(customers.csv、items.csv、invoices.csv)不需要永久保存,因为它们只是作为临时文件,所以可以打包到压缩文件。

我的示例 MySQL outfile 命令:

SELECT customer_id, firstname, surname FROM customers INTO OUTFILE '/tmp/customers.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';

SELECT item_id, itemname, item_plu FROM items INTO OUTFILE '/tmp/items.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';

SELECT invoice_id, invoice_total FROM invoices INTO OUTFILE '/tmp/invoices.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';

问题

你们知道 MySQL 命令吗?INTO OUTFILE 文件直接进入一个 zip 文件,而不是作为 3 个额外的单独文件存储到磁盘上?

我刚刚阅读了您的问题,并在寻找相同功能的同时找到了答案。所以我分享我的发现: 不幸的是,MySQL 似乎不支持直接输出压缩,此功能已请求但尚未实现:

This is the link

据我所知,最好的方法是分两步完成:

  1. 输出
  2. 使用命令行压缩

乔佛里