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