有没有一种方法可以使 .sql 文件中的 OUTFILE 语句指向 .sql 文件本身的当前工作目录的路径,而无需手动指定绝对路径名?现在,默认位置是我正在使用的模式的数据目录(即 C:\progra~1\mysql\etc\etc)。
谢谢!
有没有一种方法可以使 .sql 文件中的 OUTFILE 语句指向 .sql 文件本身的当前工作目录的路径,而无需手动指定绝对路径名?现在,默认位置是我正在使用的模式的数据目录(即 C:\progra~1\mysql\etc\etc)。
谢谢!
似乎脚本是你最好的选择。使用 Perl 或 PHP 在 cwd 中生成带有 outfile 的查询。
不是直接的,但是您可以通过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
允许您将该输出重定向到指定的文件,因此您拥有与您想要的相同的东西,没有FIELDS
orLINES
选项SELECT INTO OUTFILE
,但足够接近!