按Ctrl+Shift+H(Windows/Linux)或Cmd+Shift+H(macOS)可快速打开历史SQL记录面板,需确保焦点在SQL编辑区,仅成功执行的语句被记录,支持双击插入、右键复制,历史默认存200条且不自动同步。
Navicat 里按什么键能快速打开历史 SQL 记录
直接按 ctrl + shift + h(windows/linux)或 cmd + shift + h(macos),就能弹出「历史执行记录」面板。这个快捷键在所有 navicat 版本(12/15/16/17)的查询编辑器中都有效,但前提是当前焦点在 sql 编辑区——如果光标在连接列表、表结构页或结果网格里,按键会没反应。
- 常见错误现象:按了没反应 → 检查是否在 SQL 编辑器内点击过任意位置,让输入焦点回归
- 部分用户误用
Ctrl + H(这是“替换”功能),会触发文本替换框,不是历史记录 - macOS 用户注意:
Cmd键不能被系统级快捷键拦截(比如“聚焦搜索”设为Cmd + Space不影响,但若全局绑定了Cmd + Shift + H就会冲突)
历史记录面板里怎么筛选和复用某条 SQL
面板默认按时间倒序排列,最新执行的在最上面。它不支持全文搜索,但支持鼠标双击某行直接插入到当前编辑器光标处;也可以右键单击选择「复制」或「复制为新查询」。
- 使用场景:调试时反复修改同一段 SQL,想回溯上三次的 WHERE 条件 → 双击对应历史项即可粘贴,不用手动滚动找
- 参数差异:「复制为新查询」会新开一个查询标签页并粘贴内容;「复制」只是进剪贴板,适合粘贴到别处对比
- 容易踩的坑:历史记录默认只存最近 200 条(可在
工具 → 选项 → 查询 → 历史记录最大数量修改),超限后旧记录自动丢弃,不提示
为什么刚执行的 SQL 没出现在历史里
Navicat 的历史记录只收录「成功执行且有返回结果」的语句,或者明确点击了「运行」按钮(F6)的语句。语法错误、连接中断、空查询、仅选中部分文本执行(未全选或未手动执行)都不会入库。
- 常见错误现象:“我明明按了 F6,怎么没记?” → 检查是否只选中了注释行或空白行,实际没执行任何有效 SQL
- 性能影响:历史记录是内存缓存+本地文件(路径为
~/.navicat/history或%APPDATA%\PremiumSoft\Navicat\history),不走数据库,不影响查询速度 - 兼容性注意:Navicat for MySQL / PostgreSQL / Oracle 共享同一套历史逻辑,但 SQLite 模式下部分版本(如 16.0.14 之前)不记录执行历史
如何导出全部历史 SQL 到文件做备份
Navicat 没提供一键导出功能,但历史数据以纯文本 SQLite 数据库存储,可手动提取。路径取决于系统和版本,但核心文件名统一为 history.db。
- Windows 路径示例:
%APPDATA%\PremiumSoft\Navicat\history.db - macOS 路径示例:
~/Library/Application Support/PremiumSoft/Navicat/history.db - 用任意 SQLite 工具(如
DB Browser for SQLite)打开该文件,查history表,sql_text字段即为原始 SQL - 容易被忽略的点:这个 DB 文件不会实时写入,关闭 Navicat 后才刷盘;强行杀进程可能导致最后几条丢失
history.db 或养成写脚本的习惯。










