Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 主键是否可以等于其他列?_Sql - Fatal编程技术网

Sql 主键是否可以等于其他列?

Sql 主键是否可以等于其他列?,sql,Sql,我知道主键必须是唯一的,但是主键恰好等于同一个表中的不同列可以吗 例如,我有两张桌子。其中一个表称为person,它保存了关于某人的信息(ID、电子邮件、电话、地址、姓名)。另一个表是员工(ID、pID(人员ID)、工资、职位)。 在staff中,ID列是主键,用于唯一标识工作人员。数字是从1到100。但是,pID(人员ID)可能等于ID。例如,员工ID可能为1,其引用的pID可能等于1 可以吗?主键的任务是唯一且可靠地标识每一行-因此,它必须是唯一的且不为NULL-其他任何内容都是无关的 如果

我知道主键必须是唯一的,但是主键恰好等于同一个表中的不同列可以吗

例如,我有两张桌子。其中一个表称为person,它保存了关于某人的信息(ID、电子邮件、电话、地址、姓名)。另一个表是员工(ID、pID(人员ID)、工资、职位)。 在staff中,ID列是主键,用于唯一标识工作人员。数字是从1到100。但是,pID(人员ID)可能等于ID。例如,员工ID可能为1,其引用的pID可能等于1


可以吗?

主键的任务是唯一且可靠地标识每一行-因此,它必须是唯一的且
不为NULL
-其他任何内容都是无关的


如果您恰好有第二列具有完全相同的值-我想知道为什么会是这种情况-但这不会对主键产生任何负面影响。

主键的任务是唯一且可靠地标识每一行-因此,它必须是唯一的且
不为NULL
-其他任何内容都是无关的


如果您恰好有第二列具有完全相同的值—我想知道为什么会是这种情况—但这对主键没有任何负面影响。

是的。不检查表中不同列之间的关系


你担心的限制根本没有意义。假设您有一个包含列
ID
name
year\u of\u birth
的人员的表。它不允许1975年出生的人拥有
ID=1975

是的。不检查表中不同列之间的关系


你担心的限制根本没有意义。假设您有一个包含列
ID
name
year\u of\u birth
的人员的表。它不允许1975年出生的人拥有
ID=1975

表的主键必须是唯一的且不为null。表之间的不平等性没有限制。这完全取决于您。

表的主键必须是唯一的且不为空。表之间的不平等性没有限制。这完全取决于你