“新建查询”点不动是因为未激活数据库连接,需先双击左侧连接条目进入主界面;new query 功能强依赖当前连接上下文,无连接时禁用。

为什么“新建查询”点不动?连接上下文是前提
不是功能坏了,而是当前没激活任何数据库连接。Navicat 的 New Query 菜单项(右键或顶部菜单)在未进入具体连接时是灰色或无响应的——必须先双击左侧连接列表里的某个条目(比如 127.0.0.1:3306),进入该连接的主界面后,才能从 Query 标签页或右键菜单中成功打开新查询窗口。
常见错误现象:点了 New Query 没反应,或者弹出空窗口、报错 No connection selected;本质是 Navicat 把“查询”和“连接”强绑定,不支持脱离连接的“裸查询”。
- 每个新开的查询窗口默认复用当前连接的会话,事务、用户变量、临时表都共享——这不是隔离环境
- 想真正并行执行互不影响的 SQL(比如一个跑 UPDATE,另一个查结果),得手动新建第二个连接(复制原连接配置,改个名字如
test_conn_2),再从它打开新New Query -
Ctrl + Q是快捷方式,但同样受连接上下文限制;没连上时按了也没用
多窗口 vs 多标签:任务栏显示和进程隔离的区别
Navicat 默认所有查询都在同一个主窗口里以标签页形式存在(Query 1、Query 2…),这叫“多标签”;而“多窗口”是指启动多个独立的 Navicat 进程,每个有自己的任务栏图标和窗口句柄。
要启用多窗口模式,必须提前设置:工具 → 选项 → 常规 → 允许重复运行 Navicat,然后重启软件。否则第二次点击桌面图标只会把已有窗口唤到前台,不会开新进程。
- 多窗口适合跨数据库对比(比如左边看 MySQL 表结构,右边看 PostgreSQL 同名表数据)
- 多标签更适合同一连接下的多任务协作(比如一个标签写 SELECT,另一个写 UPDATE,共享同一事务上下文)
- 停用
窗口在工作列显示后,关闭主窗口会连带关闭所有子窗口(包括表编辑器、查询页等),这个开关需重启生效
怎么给结果选项卡起个有意义的名字?用 Navicat-only Syntax
默认每个查询结果页叫 结果 1、结果 2,查多了根本分不清哪个对应哪条语句。Navicat 提供了专用语法让结果页自定义命名,关键在于插入代码段 Customize Result Tab Name。
操作路径:SQL 编辑器右侧点开 代码段窗格 → 下拉选 Navicat-only Syntax → 双击该代码段,光标处会插入类似这样的模板:
/*+ navicat:tab_name="用户登录统计" */ SELECT COUNT(*) FROM login_log WHERE DATE(created_at) = CURDATE();
把 "用户登录统计" 改成你想要的名称,执行后结果页就显示为该名字。注意两点:
- 必须用
/*+ navicat:...注释格式,不能写成--或去掉+ - 该语法只在 Navicat 内部生效,导出或复制到其他工具里会被当普通注释忽略
- 如果同时执行多个语句(用分号隔开),只有第一个语句能控制选项卡名
执行大量结果时卡死?别怪窗口,先调参数
查大表返回几万行时,Navicat 不是“没响应”,是在拼命加载全部数据进内存渲染表格视图——这是默认行为,但可以关。
两个关键设置位置:
-
Preferences → Data View → Grid → Maximum number of records to display:建议设为500或1000,避免一次性拉全量 -
Preferences → Editor → Execution → Limit rows:设为0(不限制)或明确填数字,别留空;留空时部分版本会默认截断为 1000 行,容易误判数据总量 - 更直接的办法:写 SQL 时开头就加
LIMIT 500,尤其在调试阶段
真正容易被忽略的是:这些设置对已打开的查询窗口**不实时生效**,必须新开一个 New Query 才应用新规则。











