【问题标题】:MySQL how do you append to a file with INTO OUTFILE?MySQL 如何使用 INTO OUTFILE 附加到文件?
【发布时间】:2012-04-01 01:06:40
【问题描述】:

我有以下代码:

SELECT * INTO OUTFILE'~/TestInput/Results.csv'      
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
FROM Results;

期望的结果是不断追加到Results.csv

【问题讨论】:

    标签: mysql into-outfile


    【解决方案1】:

    您可以合并结果并立即写入。 TEE 将记录所有可能不需要的内容。在你的情况下:

    SELECT * FROM Results UNION 
    SELECT * FROM Results INTO OUTFILE '~/TestInput/Results.csv';
    

    【讨论】:

      【解决方案2】:

      SELECT INTO OUTFILE 无法做到这一点。该命令只会创建新文件,如果文件已经存在,则会失败。

      您可以在 MySQL 客户端中使用 TEE 命令将查询输出附加到现有文件。

      这是您使用 TEE 将两个查询结果附加到同一文件的示例:

      TEE ~/TestInput/Results.csv
      
      SELECT * 
      FROM Results;
      
      SELECT * 
      FROM Results;
      
      NOTEE
      

      【讨论】:

      • 如何将其包装在存储过程中并首先检查文件是否存在(在使用 TEE 之前)?
      • 如果要先检查文件是否存在,应该使用脚本语言(python、bash、perl 等)而不是存储过程。
      【解决方案3】:

      直接在 MySQL 中是不可能的。但是您可以尝试在文件名中添加日期时间部分,然后使用“cat”(UNIX 命令)或“type”(DOS 命令)将一些文件组合成一个新文件。

      帮助:cat (Unix)

      【讨论】:

      • 谢谢。链接已更改。
      猜你喜欢
      • 1970-01-01
      • 2010-10-31
      • 2011-02-21
      • 2023-04-08
      • 2011-08-10
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多