我试图在 MySQL Workbench 中保存大约 1,000,000 条记录的查询结果。
当我运行 SELECT 时,只显示 1000 条记录(MySQL Workbench 的默认限制)。我知道我可以更改限制或删除限制,但我不希望将 1,000,000 条记录加载到结果面板中(这可能会使我的计算机崩溃?),但我确实想将结果保存到文件中。
MySQL Workbench 是否允许您将查询结果直接保存到文件中?或者保存整个结果集而不是 1,000?
我试图在 MySQL Workbench 中保存大约 1,000,000 条记录的查询结果。
当我运行 SELECT 时,只显示 1000 条记录(MySQL Workbench 的默认限制)。我知道我可以更改限制或删除限制,但我不希望将 1,000,000 条记录加载到结果面板中(这可能会使我的计算机崩溃?),但我确实想将结果保存到文件中。
MySQL Workbench 是否允许您将查询结果直接保存到文件中?或者保存整个结果集而不是 1,000?
可以更改查询结果行限制,或完全删除限制。
转到编辑 → 首选项 → SQL 编辑器(选项卡)。如果找不到Query Results,请转至SQL Queries(tab)。
找到查询结果部分并取消选中限制行复选框
单击确定。
重新运行您的查询。
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
用户可写的,它也可能是其中之一。
只需添加 'limit $number' 附加 SQL 子句。如果不加限制,默认返回1000行。