联合主键设置之后,设置外键的问题

nebulaliang 2006-07-14 11:02:11
有一个表有两个字段,ID1,ID2,将其设为联合主键,之后我想将另外一个表的一个字段的外键设为ID1,但会提示“与现存的主键或UNIQUE约束不匹配”。有没有解决的办法,还是SQL Server不允许这样?谢谢!
...全文
352 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellowork 2006-07-14
  • 打赏
  • 举报
回复
也就是说,复合主键的任意一个不能作为其它表的字段的外键,对吧?
--------------------------------------------------------------------------------
是这样.因为联合本身的含义就是几个列用and连接起来才唯一.单独一个列是不能保证唯一的,值不唯一的列怎么能做主键呢?
hellowork 2006-07-14
  • 打赏
  • 举报
回复
如果是联合主键,那么要创建的外键也必须是联合外键,即创建外键时,外键的列数必须与主键表的联合主键的列数相等,并且指定对应关系.
nebulaliang 2006-07-14
  • 打赏
  • 举报
回复
也就是说,复合主键的任意一个不能作为其它表的字段的外键,对吧?
Yang_ 2006-07-14
  • 打赏
  • 举报
回复
不能
外键只能对应主键或者唯一索引,如果你的id1唯一,可以设置唯一索引,再设置外键,但是,如果这样,你的主键(id1,id2)这样的设置正确吗?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧