能否恢复取决于是否同步过Navicat Cloud;未同步则Cloud回收站为空,无法恢复;已同步则需在Cloud→查询→回收站中右键还原,仅恢复SQL文本,不保留上下文。
Navicat 里误删的 SQL 查询文件,**能不能恢复,只取决于它是否同步过 Navicat Cloud**。没同步过,Cloud 回收站就是空的,这条路直接不通。
确认脚本是否在 Navicat Cloud 回收站里
这是第一步,也是决定性判断:
- 左下角点击
Navicat Cloud图标 → 进入「查询」分类 → 切换到顶部「回收站」标签页 - 如果列表为空,说明该脚本从未点过「同步到云」,
Cloud没存过它,别在这儿浪费时间 - 如果能看到目标脚本,注意核对删除时间、所属连接名——多人协作时容易选错同名脚本
从 Cloud 回收站还原单个查询脚本
还原动作本身简单,但触发位置和后续处理常被忽略:
- 必须在
Navicat Cloud → 查询 → 回收站页面中右键脚本名 → 选「还原」;拖拽、双击、点「恢复全部」都无效 - 还原后脚本会回到原数据库连接下的「查询」节点,不会自动打开,需手动双击才能编辑或运行
- 若还原后执行报错
Connection is closed或Unknown database 'xxx',说明原连接已被删/改名/断网,得先修复连接配置再操作
还原后执行失败的常见原因和补救
Cloud 只保存纯 SQL 文本,不存上下文。以下情况还原即失效:
-
USE database_name;这类语句在新会话中可能不起作用——当前连接默认库不是它指定的库,要么手动切换连接,要么把表名全写成database_name.table_name - 脚本含临时表(
CREATE TEMPORARY TABLE)、用户变量(@var := 1)或会话设置(SET sql_mode = 'STRICT_TRANS_TABLES'),这些都不会继承,得补全或拆成多步执行 - 同事删脚本前刚执行了
ALTER TABLE,而你还原的是旧版脚本,字段已不存在或类型不匹配,得对照当前表结构手动调整
没开 Navicat Cloud 怎么办?本地还有没有机会
没同步,Cloud 就是零备份。但本地仍可能有残留路径可挖:
- Windows 用户可直奔:
C:\Users\{用户名}\Documents\Navicat\{数据库类型}\Servers\{连接名}\,里面常存着未同步但也没被彻底清理的.sql文件(尤其 SQL Server / PostgreSQL 场景较常见) - macOS 用户对应路径是:
~/Documents/Navicat/{数据库类型}/Servers/{连接名}/ - 如果连这个目录也空了,且没关 Tab、没做其他编辑,可立刻按
Ctrl+Y(Windows)或Cmd+Shift+Z(macOS)试试重做——仅限刚删、还在同一 Query Tab 里的极短窗口期 - 长期策略:把所有重要查询导出为
.sql文件,纳入Git管理。人会手滑,但git log不会丢。











