能,但必须右键数据库名触发「逆向数据库到模型」,且连接用户需有information_schema查询权限;单表右键仅生成孤立结构,无法构建含外键关系的ER图。
能,但不是点一下就出图——必须右键数据库名触发「逆向数据库到模型」,且当前连接用户得有 information_schema 查询权限,否则画布空白、表不显示、外键不连线,全是权限问题。
为什么右键表没用,必须右键数据库?
Navicat 的「逆向表到模型」只生成单张表的孤立结构,不带外键关系、不自动加载引用表、也不进图表视图——它只是个字段列表快照。真正生成可读 ER 图的唯一可靠入口是:右键数据库名 → 逆向数据库到模型。
- 菜单项灰色?说明连接未激活,或该连接下没展开任何数据库节点
- 弹出空窗口?其实是模型已建好,但默认没切换到「图表」选项卡,需手动点顶部「图表」标签
- 只出现 3 张表?很可能是其余表含无效外键(如 REFERENCES nonexistent_table),Navicat 默认跳过,可在逆向对话框勾选「包含无关联表」
逆向失败最常卡在 information_schema 权限
MySQL 8.0+、PostgreSQL、SQL Server 都靠 information_schema 或等价系统视图(如 pg_class)读取列定义、主键、约束。若用户仅被授予业务库 SELECT 权限,SELECT COUNT(*) FROM information_schema.tables 会直接报 Access denied。
- MySQL 解决方案:
GRANT SELECT ON information_schema.* TO 'your_user'@'%'; FLUSH PRIVILEGES; - PostgreSQL 需确保用户对
pg_catalog有 USAGE 权限 - SQLite / 旧版 MariaDB 不稳定,优先改用「从数据库导入」整库模式
外键不显示连线?不是没建,是没匹配上
Navicat 绘制关系线的前提是:目标表存在 + 表名大小写精确匹配 + 字段名可解析。DDL 里写着 FOREIGN KEY (org_id) REFERENCES org(id),但实际表叫 ORG(PostgreSQL 大小写敏感),或 org 表根本没被选中逆向,关系线就永远不会出现。
- 务必用「逆向数据库到模型」批量操作,别单表右键
- 检查引用表是否存在:比如
REFERENCES user_info(id),但库里实际是user_info和USER_INFO两个对象 - 逆向前打开「模型设置」→ 勾选
Import foreign keys as relationships(默认开,但有时重置)
导出清晰 ER 图前必须做的三件事
刚逆向完的模型图是堆叠状态,直接导出 PNG/PDF 会字段重叠、箭头截断、注释看不见——这不是导出功能缺陷,是布局没处理。
- 先点顶部菜单「图表」→「自动布局」,让 Navicat 重排元素(仍需人工微调间距)
- 右键每张表 →「样式」→ 勾选「显示字段注释」,否则
status TINYINT COMMENT '0-待支付,1-已发货'这类关键说明不会出现在图上 - 导出优先选
SVG格式,缩放不失真;PDF 在高 DPI 屏幕易模糊,且中文可能渲染异常
真正卡住人的从来不是操作路径,而是权限配置和大小写匹配这种细节——尤其在 PostgreSQL、Oracle 或国产库(如 KingbaseES)里,表名 User 和 user 是两个东西,Navicat 不会帮你纠正,只会沉默地跳过关系线。


















