2017-04-01 803 views
0

我一直在尝试解决此问题,但找不到解决方案。 我有两个表,即:用户,firstdb。 在用户表中我有两个主键,在外键表中我有一个字段,我想让它成为一个外键。 我试图将一个字段作为用户表中的主键,该关系在当时正常工作,但是一旦将第二个字段设置为primary,它会强制我由于某种原因删除现有关系。另外,这两个字段具有相同的数据类型。表***中的列与现有主键或UNIQUE约束不匹配

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

enter image description here

+0

“在用户表中我有两个主键”。 *主键*表示有一个。 –

回答

0

你似乎有一个主要键就是一个深刻的误解。主键(单数)是唯一标识每行的一列或多列(并且没有列是NULL)。当您单击“主键”两列时,您正在生成一个复合主键。

外键引用需要是完整的主键。如果你有一个复合主键,你需要一个复合外键。

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

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

+0

我现在明白了,它的工作很好,谢谢你的帮助。 –