MySQL 如何使用 INTO OUTFILE 附加到文件?

Posted

技术标签:

【中文标题】MySQL 如何使用 INTO OUTFILE 附加到文件?【英文标题】:MySQL how do you append to a file with 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

【问题讨论】:

【参考方案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)

【讨论】:

谢谢。链接已更改。

以上是关于MySQL 如何使用 INTO OUTFILE 附加到文件?的主要内容,如果未能解决你的问题,请参考以下文章

Mysql select into outfile 命令

Mysql 使用 select into outfile

MySQL SELECT INTO OUTFILE 到不同的服务器?

MySQL SELECT xxx INTO OUTFILE用法

“ INTO OUTFILE ”语句未完成而终止,锁定文件

select into outfile