我正在编写一个非常简单的 shell 脚本来将表格转储到 CSV 文件中。这是其中的一部分:
day=`/bin/date +'%Y-%m-%d'`
file="/tmp/table-$day.csv"
rm $file
query="SELECT * FROM table INTO OUTFILE '$file' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\\n'"
echo "$query" | mysql <connection_parameters>
我放入 rm $file
以确保该文件在查询执行之前不存在。
但是,当我执行脚本时,我收到了相互冲突的消息:
rm: cannot remove `/tmp/table-2013-02-08.csv': No such file or directory
ERROR 1086 (HY000) at line 1: File '/tmp/table-2013-02-08.csv' already exists
我在机器的任何地方都找不到 OUTFILE。
那怎么了……?
谢谢。
最佳答案
我找到了答案。
OUTFILE 在 MySQL 服务器上创建文件,而不是在我的 MySQL 客户端机器上。
关于MySQL OUTFILE 查询提示 "file already exists"但该文件根本不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14762640/