我正在尝试在MySQL Workbench中保存大约1,000,000条记录的查询结果。
当我运行SELECT时,只显示1000条记录(MySQL Workbench的默认限制)。我知道我可以更改限制,或删除限制,但我不希望将1,000,000条记录加载到结果面板中(这可能会导致计算机崩溃?),但我确实希望将结果保存到文件中。
MySQL Workbench是否允许您将查询结果直接保存到文件中?或者保存整个结果集而不是1,000?
答案 0 :(得分:37)
LOAD DATA INFILE
有一个叫SELECT ... INTO OUTFILE的兄弟姐妹。您可以像使用它一样使用它:
SELECT * FROM mytable
INTO OUTFILE '/tmp/mytable.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';
此方法不会在UI中使用不必要的资源。
正如@florian指出的那样:但它会在数据库服务器上创建输出文件,而不是在客户端计算机上创建。
另请注意, SELinux 或 AppArmor 等安全框架可能会阻止MySQL在标准数据库文件夹之外写入文件。如果您遇到权限被拒绝错误,即使该目录可由mysql
用户写入,也可能是其中之一。
答案 1 :(得分:33)
可以更改查询结果行限制,或完全删除限制。
转到编辑→首选项→SQL编辑器(选项卡)。如果找不到查询结果,请转到 SQL查询(选项卡)。
找到查询结果部分并取消选中限制行复选框
点击确定。
重新运行您的查询。
答案 2 :(得分:5)
只需添加'limit $ number'即可附加SQL子句。 如果不添加限制,则默认返回的行为1000。
答案 3 :(得分:-1)