'table_XXX'中的列与现有的原始键或UNIQUE约束不匹配

时间:2015-06-12 11:08:30

标签: sql sql-server sql-server-2008

我有2个简单的表格,如下所示:

用户:

enter image description here

分类

enter image description here

现在我想在类别表上将用户名设置为外键,这样就是我所做的但是得到的错误如下所示:

enter image description here

我做得对吗?或者有人可以建议我这样做的正确方法吗?

*注意:我试图从2个表中删除主键并将其添加回来并尝试但显示相同的错误。

5 个答案:

答案 0 :(得分:2)

你没有以正确的方式做到 - 因此错误。如果您需要名称,请将userid放入您的类别表中并加入用户。

实际上,如果该字段代表创建类别的人,则应将其命名为CreatedByUserId。它仍应引用users.userid。

答案 1 :(得分:1)

unique constraint表格的username列上加Users。然后你可以创建FK,如图所示。也就是说,在两个表中都有username并不是一个很好的设计。您应该删除username并在userid表中添加Categories,然后将其改为FK。

答案 2 :(得分:0)

  

外键约束不必仅链接到主键   另一个表中的键约束;它也可以定义为参考   另一个表中UNIQUE约束的列。

Create Foreign Key Relationships

中的

您必须在表Users中设置约束,以使用户名为唯一。

答案 3 :(得分:0)

尝试在表Categories中更改外键字段的名称。 似乎它使用他们的名字“autowire”字段。我的意思是:将Categories.username更改为Categories.userid

答案 4 :(得分:0)

如果要在屏幕截图中设置外键关系,表用户中的列用户名必须具有唯一约束。