navicat 15 er图不显示自增标识,因其仅提取主键/外键关系,不查询sys.identity_columns或information_schema.columns.extra等自增判定视图,故即使字段含identity或auto_increment,图中也仅显示pk图标,不标注ai。
navicat 15 er图不显示自增标识,不是图没画对,是它压根不读identity或auto_increment
navicat 的 er 图(实体关系图)本身不解析底层字段的 identity 或 auto_increment 属性,它只从表元数据中提取「主键」和「外键」关系,自增信息被完全忽略。你看到的 er 图里所有主键都长得一样,哪怕实际是自增列——这不是 bug,是设计如此。
ER图依赖 sys.identity_columns(SQL Server)或 INFORMATION_SCHEMA.COLUMNS(MySQL),但Navicat 15默认不查这些视图
Navicat 在生成 ER 图时,主要查询的是 sys.tables、sys.columns 和 sys.foreign_keys 这类基础结构视图,而判断自增的关键系统视图:
- SQL Server:必须查
sys.identity_columns(有记录才算真正自增) - MySQL:得看
INFORMATION_SCHEMA.COLUMNS.EXTRA字段是否含auto_increment
Navicat 15 的 ER 图引擎默认跳过这些字段,所以即使你建表用了 INT IDENTITY(1,1) PRIMARY KEY,ER 图也不会标注“ID (PK, AI)”。
界面勾选了“Auto Increment”但ER图不更新?因为图形操作和ER图数据源不同步
你在表设计页勾选「Auto Increment」,Navicat 可能只改了本地 UI 缓存或触发了部分 DDL,但 ER 图刷新用的是另一套元数据拉取逻辑,二者不共享状态。常见表现:
- 新建表后立刻打开 ER 图 → 自增列无任何标识
- 用 T-SQL 手动加了
IDENTITY,再刷新 ER 图 → 仍不显示 - 右键表 → “查看ER图” → 永远只显示 PK 图标,不区分是否自增
验证方法:执行 SELECT * FROM sys.identity_columns WHERE object_id = OBJECT_ID('your_table')(SQL Server)或 SHOW CREATE TABLE your_table(MySQL),确认自增真实存在,再接受 ER 图就是“不显示”这个事实。
想让ER图体现自增?只能靠人工标注或导出后手动加注释
Navicat 15 没提供自动标注自增列的开关或插件支持。可行替代方案只有:
- 在 ER 图编辑模式下,双击字段名,在备注栏手动输入
[AI]或PK+AI - 导出为 PNG/PDF 后,用绘图工具加图标(比如 ? 或 ➕)
- 放弃 ER 图依赖,直接用
SELECT TABLE_NAME, COLUMN_NAME, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS配合脚本生成带自增标记的文本清单
真正容易被忽略的是:很多团队把 ER 图当“权威数据字典”用,结果主键是否自增全靠口头约定或翻 SQL,时间一长,迁移或对接新系统时就卡在“这 ID 是不是能 auto insert?”这种基础问题上。











