我知道主键必须是唯一的,但是主键是否可以巧合地等于同一张表中的不同列?
例如,我有 2 张桌子。一个表称为 person,其中包含有关人员的信息(ID、电子邮件、电话、地址、姓名)。另一张表是人员(ID、pID(person ID)、salary、position)。在员工中,ID 列是主键,用于唯一标识员工。数字从 1 到 100。但是,pID(个人 ID)可能等于 ID。例如,员工 ID 可能是 1,它引用的 pID 可能等于 1。
可以吗?
我知道主键必须是唯一的,但是主键是否可以巧合地等于同一张表中的不同列?
例如,我有 2 张桌子。一个表称为 person,其中包含有关人员的信息(ID、电子邮件、电话、地址、姓名)。另一张表是人员(ID、pID(person ID)、salary、position)。在员工中,ID 列是主键,用于唯一标识员工。数字从 1 到 100。但是,pID(个人 ID)可能等于 ID。例如,员工 ID 可能是 1,它引用的 pID 可能等于 1。
可以吗?
主键的工作是唯一且可靠地标识每一行 - 因此,它必须是唯一的,并且NOT NULL
- 其他任何内容都无关紧要。
如果您恰好有第二列具有完全相同的值-我想知道为什么会这样-但这绝不会对主键产生负面影响。
表的主键必须唯一且不为空。表之间的唯一性没有限制。这 100% 取决于你。
是的。没有检查表中不同列之间的关系。
您担心的限制甚至没有意义。ID
假设您有一个包含、name
和列的人员表year_of_birth
。它不允许 1975 年出生的人拥有ID = 1975
.