2009-07-02 125 views
1

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

谢谢!

回答

0

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

-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可让您将该输出重定向到指定的文件,因此您可以得到与您想要的内容相同的内容,而无需使用SELECT INTO OUTFILEFIELDSLINES选项,但足够接近!

+0

在mysql服务器上的OUTFILE路径可以使用NFS/CIFS等适当的方案作为本地文件路径(磁盘)导出和装载 – 2013-09-15 17:03:30