2

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

谢谢!

4

2 回答 2

0

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

于 2010-06-03T23:19:06.830 回答
-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选项使语句以批处理模式运行,因此查询结果以制表符分隔的方式打印,没有边框。Using> somefile.txt允许您将该输出重定向到指定的文件,因此您拥有与您想要的相同的东西,没有FIELDSorLINES选项SELECT INTO OUTFILE,但足够接近!

于 2013-09-15T16:51:08.497 回答