我知道主键必须是唯一的,但主键是否可以巧合等于同一个表中的不同列?
例如,我有2张桌子。一个表被称为持有人的信息的人(ID,电子邮件,电话,地址,姓名)。另一个表是员工(ID,pID(人员ID),薪水,职位)。 在工作人员中,ID列是主键,用于唯一标识工作人员。该数字为1 - 100.但是,pID(人员ID)可以等于ID。例如,职员ID可以是1,它引用的pID可以等于1.
可以吗?
答案 0 :(得分:3)
主键的作用是唯一且可靠地识别每一行 - 因此,它必须是唯一的NOT NULL
- 其他任何内容都无关紧要。
如果您碰巧有第二列具有完全相同的值 - 我想知道为什么就是这种情况 - 但这并不会影响主键是负面的。
答案 1 :(得分:1)
是。没有检查表中不同列之间的关系。
你担心的限制甚至没有意义。假设您有一个包含列ID
,name
和year_of_birth
的人员的表格。它不允许1975年出生的人ID = 1975
。
答案 2 :(得分:1)
表的主键必须唯一且不为null。表之间的不等式没有限制。这完全取决于你。