我阅读了很多帖子,并用不同的关键词进行了大量的谷歌搜索,以找到这个问题的答案。虽然有关该主题的帖子很多,但没有一个帖子给出了适用于我的机器的答案,所以我创建了一个新帖子。
我在没有连接到网络的Windows开发机器上安装了MySQL 5.6。我试图将表中的数据导出到outfile中,然后我可以将其用于其他目的。查询成功运行。事实上,当我尝试第二次运行相同的查询时,我收到一条消息,说outfile已经存在。但是当我按名称搜索文件或使用Windows资源管理器时,我找不到它。
使用MYSQL 5.6,WINDOWS 7中的文件是什么?
以下是创建outfile的代码:
SELECT * INTO OUTFILE 'table.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM table
答案 0 :(得分:2)
使用以下语法: - 你告诉他把它放在哪里!
SELECT * INTO OUTFILE 'c:/table.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM table
它通常存储在DATA_DIR
参数位置。
答案 1 :(得分:1)
来自reference manual for the SELECT
statement:
的补充
SELECT ... INTO OUTFILE
是LOAD DATA INFILE.
来自reference manual for the LOAD DATA INFILE
:
服务器使用以下规则来定位文件:
- 如果文件名是绝对路径名,则服务器将其用作给定的。
- 如果文件名是具有一个或多个主要组件的相对路径名,则服务器将搜索相对于服务器数据目录的文件。
- 如果给出没有前导组件的文件名,则服务器在默认数据库的数据库目录中查找该文件。
所以我会查看默认的数据库目录。要找出它是什么:
show variables like 'datadir';
当然,您可以在select... into outfile...
句中指定文件的位置。
此外,如果您在客户端安装了MySQL(或者您正在使用localhost),则可以在命令行中编写类似的内容:
mysql [connection parameters] -e"select ..." > yourFile.txt
这会将select
语句的结果转储到当前目录中的yourFile.txt
。
希望这有帮助