You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一ER模型中多表使用identity作为主键是否会报错?

解答

你完全可以在同一个ER模型的多张表里用int identity(1,1)作为主键,贴出来的表定义不会因为两个自增主键取值重复触发数据库报错,核心逻辑很简单:

  • 主键的唯一性约束是单表维度生效的:主键只要求在当前所属表内非空、不重复,数据库从来不会校验不同表的主键值是否重复,跨表主键值相同是非常普遍的情况。
  • IDENTITY(1,1)的自增计数器是和单张表绑定的:每个设置了自增属性的表会独立维护自己的计数序列,Persons表的Personid和Job表的jobID计数完全独立互不干扰,哪怕两个字段同时出现1、2、3这类相同值,也是完全合法的。
  • 你写的外键关联逻辑也不会受这个影响:Job表的Personid作为外键,只会校验插入数据时填入的值必须在Persons表的Personid列中存在,和Job表自身的主键jobID取什么值没有任何关系。

实际运行时你可以很容易验证:往Persons表插入3条数据,Personid会自动生成1、2、3;往Job表插入5条数据,jobID会自动生成1、2、3、4、5,两边重复的1/2/3值不会引发任何插入、查询、关联错误。

你贴的两段建表SQL语法没有问题,可以直接正常使用,不存在主键冲突风险。


内容的提问来源于stack exchange,提问作者cvika7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 18:43:02