52

我试图在 MySQL Workbench 中保存大约 1,000,000 条记录的查询结果。

当我运行 SELECT 时,只显示 1000 条记录(MySQL Workbench 的默认限制)。我知道我可以更改限制或删除限制,但我不希望将 1,000,000 条记录加载到结果面板中(这可能会使我的计算机崩溃?),但我确实想将结果保存到文件中。

MySQL Workbench 是否允许您将查询结果直接保存到文件中?或者保存整个结果集而不是 1,000?

4

4 回答 4

50

可以更改查询结果行限制,或完全删除限制。

  1. 转到编辑 → 首选项 → SQL 编辑器(选项卡)。如果找不到Query Results,请转至SQL Queries(tab)

  2. 找到查询结果部分并取消选中限制行复选框

  3. 单击确定

  4. 重新运行您的查询。

于 2012-10-13T10:52:22.283 回答
40

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指出的那样:但是,它将在数据库服务器上创建输出文件,而不是在客户端机器上。

另请注意,SELinuxAppArmor等安全框架可能会阻止 MySQL 将文件写入标准数据库文件夹之外。如果您遇到权限被拒绝错误,即使该目录是mysql用户可写的,它也可能是其中之一。

于 2013-04-07T12:00:04.920 回答
6

只需添加 'limit $number' 附加 SQL 子句。如果不加限制,默认返回1000行。

于 2015-04-28T09:32:37.730 回答
-1

MySql 中有一个选项可以导出所有记录。命名查询结果操作。

在此处输入图像描述

于 2021-03-02T06:30:29.647 回答