查询结果与历史
从执行范围确认到结果检查、复制与导出,再到历史回溯,建立可复核的 SQL 操作流程。
适用场景
本页适用于已经进入 SQL 工作台,需要控制执行范围、核对结果或复用历史语句的用户。常见任务包括:
- 一个编辑器中包含多条 SQL,只运行当前选中的语句,或明确选择运行完整脚本。
- 查看查询返回的表格数据、执行耗时、行数、成功或失败状态,并复制需要的内容。
- 将结果保存为 CSV、JSON、SQL、Excel 或 PDF,供后续分析、交付或留档。
- 通过关键词、状态、日期和数据源筛选执行历史,找回曾运行的 SQL 并检查错误信息。
- 在执行 INSERT、UPDATE、DELETE 或 DDL 前再次确认目标连接、数据库和影响范围。
入口路径
从顶部导航进入工作台,在左侧选择已连接的数据源与数据库,然后打开或新建 SQL 查询 Tab。编辑器工具栏提供“运行”和“全部运行”等执行入口;下方区域显示执行摘要或结果集。
需要调整限制时,打开顶部设置,在设置窗口左侧选择查询与结果。需要回溯语句时,从顶部导航进入执行历史,使用时间范围、SQL 内容、状态和数据源等条件检索。
前置条件
- 目标数据源已经创建并连接成功;连接所用账号具备当前操作需要的最小权限。
- 编辑器 Tab 已绑定正确的数据源、数据库与 Schema,且状态栏显示的上下文与预期一致。
- 执行查询前先补充 WHERE、LIMIT 或数据库对应的分页语法,避免无意读取过多数据。
- 执行修改或结构变更前,确认具有可用备份、快照或回滚方案,并尽量先在测试环境验证。
- 若关闭自动提交,提前了解目标数据库的事务行为,并准备在检查后手动 COMMIT 或 ROLLBACK。
编号步骤
- 确认执行上下文。查看当前查询 Tab 绑定的数据源、数据库和 Schema;连接名称相近时,不要仅凭 SQL 内容判断环境。涉及生产或只读连接时,先核对连接标识与权限。
- 选择执行范围。只需运行部分脚本时,先在编辑器中准确选中目标 SQL,再点击“运行”;需要按编辑器内容运行完整脚本时才使用“全部运行”。执行前检查选区起止位置,避免把相邻 DML 或 DDL 一并选中。当前语句也可使用 Ctrl + Enter 执行。
- 先预览,再修改。对 UPDATE 或 DELETE,先把相同筛选条件写成 SELECT,检查主键、样本记录和预计影响范围。确认 WHERE 条件不为空且目标正确后,再执行修改语句;结构变更同样应先审阅完整 DDL。
- 核对执行摘要。运行结束后查看成功或失败状态、耗时、返回或影响行数和错误信息。批量运行时逐条检查,不要仅依据顶部“执行完成”提示判断所有业务结果均符合预期。
- 查看与复制结果。在 Grid 表格中浏览常规记录;需要观察嵌套内容或单条记录时,可按工作台提供的 Tree、JSON 或表单视图切换。复制前确认是否包含列名、NULL、日期精度和长文本,复制后在目标位置抽查首尾记录。
- 按用途导出。从结果工具栏选择 CSV、JSON、SQL、Excel 或 PDF。先以小范围结果试导出,打开文件检查编码、列顺序、数据类型和记录数;敏感数据交付前应按团队规则脱敏。数据规模较大时,不要盲目提高行上限,应改用筛选、分页或数据工具。
- 回溯并谨慎复用。进入“执行历史”,按时间、关键词、状态或数据源缩小范围,核对历史项的数据源、数据库、耗时、行数和错误信息。复制或重新使用历史 SQL 后,先在编辑器中重新审阅参数、日期与环境,不要把历史语句直接视为当前可安全执行。
参数说明
以下参数位于设置 → 查询与结果。调整后应使用低风险查询验证实际行为,不应把限制值视为数据库本身的容量保证。
| 参数 / 控件 | 作用 | 设置建议与风险 |
|---|---|---|
| 查询超时(秒) | 限制单条 SQL 的最大等待时间;超时后自动取消。 | 交互查询宜保持有限值。调大前先检查执行计划、锁等待与网络状况;客户端取消不等于所有数据库都已立即释放后台资源,必要时到数据库侧确认。 |
| 结果行上限(行) | 限制 SELECT 查询返回的最大行数,超过时截断并提示。 | 优先通过 WHERE、LIMIT 和分页缩小范围。提高上限会增加传输、渲染和导出成本,仍不代表可以处理无限结果。 |
| 自动提交(AutoCommit) | 开启时,DML 按连接事务行为自动提交;关闭后通常需要手动 COMMIT 或 ROLLBACK。 | 修改数据前先确认开关状态。开启后误操作可能立即持久化;关闭后要避免长事务持锁,并在检查影响行数后明确提交或回滚。 |
| 运行 | 运行当前语句或编辑器中明确选择的 SQL。 | 多语句脚本优先使用精确选区;点击前复核选区和连接上下文。 |
| 全部运行 | 运行当前编辑器中的完整脚本内容。 | 仅在已逐条审阅脚本顺序和副作用后使用。混合 DDL、DML 与查询时尤其要确认数据库事务语义。 |
| 结果导出格式 | 将当前查询结果保存为 CSV、JSON、SQL、Excel 或 PDF。 | 格式能力不等于业务正确性。导出后应检查记录数、编码、NULL 表示、日期与数值精度;SQL 格式还需在目标环境审阅后再执行。 |
预期结果
一次可复核的查询或修改操作,应能得到并确认以下信息:
- 执行范围符合预期:选中语句与完整脚本没有混淆,数据源、数据库和 Schema 正确。
- 结果区域显示明确的成功或失败状态,并可查看耗时、返回行数、影响行数或错误详情。
- 查询数据可在适合的结果视图中检查,并可复制或按所需格式导出;导出文件经抽样核对可正常打开。
- 执行历史中可按条件找到对应记录,记录的数据源、数据库、SQL 内容、耗时、行数和状态与本次操作相符。
- 修改数据时,预览结果、实际影响行数和事务处理决定均经过确认;发现偏差时停止后续操作并按既定方案回滚或恢复。
常见问题
1. 为什么结果只显示一部分记录?
先检查“设置 → 查询与结果”中的结果行上限,并确认 SQL 是否包含 LIMIT 或其他分页条件。达到上限时应缩小筛选范围或分批查询,而不是直接把上限调到极大;需要处理更大规模数据时可转到数据工具评估合适流程。
2. 查询超时后,数据库任务一定已经停止了吗?
不一定。客户端会尝试取消超时查询,但不同数据库和驱动对取消的响应可能不同。先检查连接是否恢复可用;若数据库仍有负载或锁等待,应通过数据库自身的会话与监控能力确认任务状态,避免立即重复提交同一条重查询。
3. 为什么修改成功后无法撤销?
检查执行时的 AutoCommit 状态。开启自动提交后,DML 可能已持久化,普通 ROLLBACK 无法撤销;应停止继续修改,按备份、审计记录或恢复流程处理。今后先用 SELECT 预览相同 WHERE 条件,并在适合的环境中关闭自动提交后验证事务流程。
4. 如何判断应该点“运行”还是“全部运行”?
只执行当前语句或选中片段时使用“运行”;只有在确认编辑器内全部语句都应按当前顺序执行时才使用“全部运行”。脚本包含 DDL、DML 或多环境参数时,建议分段选择执行,并在每段后核对状态与影响行数。
5. 从历史中找到的 SQL 可以直接再次执行吗?
不建议直接执行。历史记录反映的是过去的上下文,数据库、日期参数、数据状态和权限可能已经变化。先复制到编辑器,重新确认数据源、数据库、Schema、动态参数与 WHERE 条件;修改语句仍需先用只读查询预览。
MagicDB Studio