表***中的列与现有主键或UNIQUE约束不匹配

时间:2017-04-01 13:19:13

标签: sql sql-server

我一直试图解决这个问题,但我找不到解决方案。 我有两个表,即:user,firstdb。 在用户表中我有两个主键,在外键表中我有一个字段,我想让它成为一个外键。 我试图在用户表中将一个字段作为主键,当时关系工作正常,但是一旦我将第二个字段设置为主要字符串,它就迫使我出于某种原因删除现有关系。此外,两个字段都具有相同的数据类型。

我尝试在MySQL中创建这样的关系,它对我很好,但由于某种原因它在这里不起作用。enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

您似乎对主要键的含义有着深刻的误解。主键(单数)是唯一标识每一行的一列或多列(并且没有列是NULL)。当您通过两列单击“主键”时,您将生成复合主键。

外键引用需要是完整主键。如果您有复合主键,则需要复合外键。

具有单列外键引用是最佳类型的主键是标识列的一个原因。我猜测userid就是这样一个专栏。

如果希望uEmailId是唯一且非NULL,则将其定义为唯一且非NULL。但是,不要将它添加到主键!