为什么SELECT INTO OUTFILE给文件存在错误,即使文件不存在?

时间:2013-04-24 21:12:11

标签: mysql

该文件肯定不存在,但无论如何我都收到了错误。

我做:

$ rm /tmp/records_materialized_view.txt;
$ mysql ... 

> SELECT * FROM records_materialized_view INTO OUTFILE '/tmp/records_materialized_view.txt';

ERROR 1086 (HY000): File '/tmp/records_materialized_view.txt' already exists

2 个答案:

答案 0 :(得分:4)

SELECT INTO OUTFILE将结果写入服务器文件。

您是否在服务器上检查文件是否存在?

如果要在客户端计算机上选择本地文件,只需重定向mysql输出:

mysql mydb < script.sql > /tmp/records_materialized_view.txt

答案 1 :(得分:1)

遇到类似的问题时遇到了这个答案。

我意识到SELECT INTO OUTFILE不会覆盖文件,你必须自己清理它们。因此,下次编写时会出现此错误。不确定上述答案的含义是文件是否写入服务器文件。

此外,SELECT INTO OUTFILE默认情况下会写入相对于db数据目录的文件。默认位置,即

/var/lib/mysql/

因此,如果您检查数据库数据目录,则应在那里找到您的文件。使用绝对路径可以精确控制文件的最终位置。这正是我所追求的,希望它对某人有所帮助。欢呼声。