Navicat 关闭未保存的 SQL 查询窗口后内容无法恢复,因其无编辑器级草稿恢复机制;唯一可能找回的是已执行语句,可查看 LogHistory.txt 日志文件。

关掉没保存的 SQL 查询窗口,内容基本找不回来了——Navicat 没有编辑器级草稿恢复机制,也不像 VS Code 那样保留崩溃缓存。
为什么 Ctrl+Z 或重启后都看不到刚才写的 SQL
查询编辑器(白底窗口)只维护当前标签页的文本状态:关闭标签页、切换连接、甚至只是点开另一个查询文件,都会清空当前未保存内容。Ctrl+Z 仅对编辑过程中的文字修改有效,对“已关闭”无能为力。
- Navicat 不在内存中长期保留未执行/未保存的语句
- 没有后台进程持续写入临时草稿文件
- 所谓“自动备份”仅针对已执行语句的日志(
LogHistory.txt),而非编辑器草稿
唯一可能找回的路径:检查 LogHistory.txt(仅限已执行过的语句)
如果你在关闭前至少按过一次 F6 或点击了「执行」按钮,那这条语句大概率进了历史日志文件 LogHistory.txt,它不依赖 Navicat 是否运行,是纯文本持久化存储。
- Windows 路径:
C:\Users\{用户名}\Documents\Navicat\Premium\logs\LogHistory.txt - macOS 路径:
~/Library/Application Support/PremierSoft/Navicat Premium/logs/LogHistory.txt - 用任意文本编辑器打开,搜索关键词(如
SELECT、表名、字段名),注意语句是按时间倒序排列的 - 该文件不会记录语法错误或未执行的语句,只存成功/失败的执行动作
别信“自动保存草稿”,但可以手动绕过这个缺陷
Navicat 从不自动保存编辑器内容,所谓“备份目录”(如 servers\{连接名}\{库名})只存已显式保存的查询文件(.sql),且关闭时会被主动清理,不是草稿箱。
- 新建查询后立刻按
Ctrl+S,哪怕命名为draft.sql并随手选个桌面路径,就能保住内容 - 启用
Tools → Options → Environment → Query History → Save query history,并指定外部路径,可让执行记录落盘(但依然不救未执行的草稿) - 把常用片段存在代码片段(Code Snippets)里:右键编辑器 →
Insert Snippet,短语句比靠运气强得多
真正容易被忽略的是:LogHistory.txt 和查询文件是两套独立系统。前者只记“干过什么”,后者才存“写过什么”。没执行,就只有后者能救你;而后者,必须你亲手点下保存。

















