我正在尝试在两个表之间创建关系。第一列有四列First(idP,state,phone,no),第二列有4列:Second(id,fname,lname,city)。但是,当我尝试在它们之间建立关系时,我得到错误“关系的双方必须具有相同的列数”。好吧,他们都有4列。
答案 0 :(得分:6)
当我尝试与Management Studio创建FK关系时遇到了同样的问题,我没有在两个表中选择列,因为直到你在左表内部点击组合框才明显。它应该没有任何意义,但我是初学者。 HTH。
答案 1 :(得分:2)
重新阅读link you provided底部的黄色注释框。您获得的错误仅指密钥。密钥必须由相同数量的列组成。表格中的总列数无法匹配。
也只是一个观察。您提供的两个表似乎没有匹配的列,可以很好地创建密钥。一个主键应该在另一个中具有匹配字段(外键)。除非,你的第二张表没有它自己的主键。表2的id字段只是外键吗?
答案 2 :(得分:0)
如果您的PK表只有PK,并且您想要建立关系的表复合了一个键,那么在创建外键关系时,您需要删除将显示为的其他键。它们是复合键的一部分,所以只需保留你需要的那个作为FK。 因此,在删除后,您只能连接一个Pk和一个FK。
答案 3 :(得分:0)
表之间的关系来自一个或多个列的匹配指针,它们与两个表中的值都匹配,例如,如果您的记录包含相同的“名称”和“地址”,那么我们知道它是指同一个人。
这些表实际上有多少列以及它们是否匹配并不重要,但是在设置“关系键”列时,两个表的列数必须相同。
请参见此图以获取列关系键:
答案 4 :(得分:0)
当主键和外键的名称相似时会发生这种情况。例如,我的如下图所示:
主键 | 外键 |
---|---|
personId | personId |
我将其稍作更改,以便它们具有相同的含义但格式不同,如下所示:
主键 | 外键 |
---|---|
人员ID | person_Id |
它可以是这样的: