mysql outfile到当前工作目录?

时间:2009-07-02 13:36:37

标签: mysql sql into-outfile

有没有办法让.sql文件中的OUTFILE语句指向.sql文件本身当前工作目录的路径,而无需手动指定绝对路径名?就像现在一样,默认位置是我正在使用的模式的数据目录(即C:\ progra~1 \ mysql \ etc \ etc)。

谢谢!

2 个答案:

答案 0 :(得分:0)

看起来像脚本将是你最好的选择。使用Perl或PHP在cwd中使用outfile生成查询。

答案 1 :(得分:-1)

不是直接的,但您可以通过在命令行使用mysql来获得类似的功能。

首先,一些背景知识:LOAD DATA INFILE语句有一个LOCAL变体LOAD LOCAL DATA INFILE,允许您从本地文件中的文件中读取数据系统;没有LOCAL它从服务器上的指定位置读取。

不幸的是,SELECT INTO OUTFILE语句总是写入服务器的文件系统上的指定位置(可以包括服务器配置的挂载,如NFS或CIFS股份);没有LOCAL等价物。

但是,您可以在批处理模式下使用mysql客户端来估算此类功能:

mysql -e 'SELECT * FROM db1.tbl1' -B > output.tsv

-B选项导致语句以批处理模式运行,因此查询结果以制表符分隔的方式打印,没有边框。使用> somefile.txt可以将该输出重定向到指定的文件,因此您可以使用FIELDS的{​​{1}}或LINES选项,而不是SELECT INTO OUTFILE的{​​{1}}选项。够!