Navicat智能提示失效需同时满足三处编辑器设置启用、合理延迟值(300~500毫秒)、避开输入法冲突;元数据缓存须刷新数据库节点而非子项;国产系统需切英文输入法或改用X11会话。
Navicat 的智能提示失效,不是“开关一开就永远有效”的功能,它是一套依赖配置、缓存、权限和系统环境协同工作的机制。只要其中任一环节出问题,输入 SELECT 后按 Ctrl+Space 就不会弹出表名或字段建议。
编辑器设置三处必须同时启用
很多人只勾了“使用自动完成代码”,却漏掉另外两个关键选项:显示关键字 和 显示对象名。这三个复选框缺一不可,哪怕只关一个,提示就断链。
-
延迟(毫秒)值设为 0 会导致提示完全不触发;推荐设为300~500 - 汉化版界面中,“自动完成”可能被译作“自动补全”或“代码提示”,请逐字搜索关键词,别只认图标
- 快捷键
Ctrl+Space在 Windows/Linux 上极易与中文输入法切换冲突;可改用Ctrl+Alt+Space(在「工具 → 选项 → 快捷键」里修改)
元数据缓存没刷新,新表/新字段就是不提示
Navicat 不会实时监听数据库结构变更。你刚执行 ALTER TABLE user ADD COLUMN phone VARCHAR(20),SQL 编辑器里输 user. 仍不显示 phone——大概率是本地缓存还是旧的。
- 右键点击**数据库节点本身**(带齿轮图标的那个名字),选「刷新」;只刷新「表」文件夹没用
- MySQL 若启用了
lower_case_table_names=1,而 Navicat 缓存仍按大小写敏感方式索引,也会导致提示失败;此时需退出 Navicat,手动删掉~/Library/Application Support/PremiumSoft/Navicat CC/Navicat Premium/下对应连接的缓存子目录 - 远程库用户若无
SELECT权限访问information_schema,Navicat 根本拿不到列定义,自然无法提示字段名
国产系统下提示框能弹但无法操作
在麒麟 V10 SP1 或统信 UOS V20 2303 等环境中,常见现象是:悬停有提示框,但上下键选不了、回车插不进、甚至一闪即逝。这不是 Navicat 设置错了,而是 Qt 图形栈与桌面环境(DDE/UKUI)+ 输入法(fcitx5)之间的事件捕获冲突。
- 临时解法:触发提示前,先切到纯英文输入法(比如 Ctrl+Space 切完再按一次 Ctrl+Space)
- Wayland 会话下 Qt5 支持不完整,建议登录时选择「X11」会话模式再启动 Navicat
- 麒麟系统若装过旧版 openjdk,可能干扰 JDBC 元数据读取;可在启动前执行:
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=lcd"


















