在 SQL Server 中,我有一个不可为空的列,上面有一个唯一的聚集索引。如果我将此列设为主键,则会自动创建完全相同的索引,并且该列被识别为主键。
我理解抽象/语义的区别。
(主键标识实体,而具有此索引的任何其他列可能不会。
例如,一个人可以具有唯一的电子邮件字段,不可为空......但可以更改)
但困扰我的是数据库引擎本身的实际差异。
如果我只创建一个 Id 列,使其不可为空,为它创建一个唯一的聚集索引,使其标识增量,但没有主键约束,会发生什么?
主键约束在什么情况下发挥作用?
(在提出这个问题之前,我已经查看了许多相关问题,但我看到的所有答案都以抽象/理论解释结束)。