华软网-中国程序员根据地!

 
您现在的位置: 华软网 >> 数据库 >> Mssql >> 正文

一个表的外键怎么对应多个表主键

作者:佚名    技巧来源:不详    点击数:    更新时间:2008-10-5

/> 一个表的外键怎么对应多个表主键 [已结帖,结帖人:shadowjl]   编程论坛  楼主 一个回复表 id,r_id.. r_id为外键对应user1中的id,user2的id,user3的id,均为主键 建立关系后插入数据 若 user1表中 id 1 2 user2表中 id 3 4 回复表中插入数据 id r_id 1  3 就出错了,说 回复表与user1外键约束..... 该怎么做呢     编程论坛 1 个网友回答: 先在主键表里插入记录3,再在回复表里插入记录3   
编程论坛 2 个网友回答: user2表中 id 3 4 已经有3了,但SQL以为是user1表中的主键没有3,出错了,难道只能关联user1   

编程论坛 3 个网友回答: 楼主设置的是user1的外键,和user2没有关系,user1有就能插入,没有就不能插入   

编程论坛 4 个网友回答: 加楼上,我设置的是user1和user2的外键   

编程论坛 5 个网友回答: up   

编程论坛 6 个网友回答: 你不清楚主键表和外键表得关系啊? 主键表是父表,而外键表是子表,你往外键表中插入数据时,外键字段必须在主键表里有,才可以插入,在你得例子中, user2里是有ID=3对应回复表得R_ID=3,但user1里得ID没有3这个值和回复表里对应,因此,就出错了。    编程论坛 7 个网友回答: 外键应该只对应一个主键,你这种情况应该不设置主键 一定要实现约束关系可以考虑用触发器,参考《约束类触发器》的第二个例子,需求差不多     编程论坛 8 个网友回答: 引用 4 楼 shadowjl 的回复: 加楼上,我设置的是user1和user2的外键 你多外键,就得多个表同时满足要求,有一个表缺少数据就不行, 类似你的功能,最好别用约束或触发器,用程序去保证完整性   
编程论坛 9 个网友回答: 引用 7 楼 Haiwer 的回复: 外键应该只对应一个主键,你这种情况应该不设置主键 海爷说的对,你多个外键,比如是级连的删除, 只要你删除任意主表的其中一个主键值,子表的外键值就被删除了 到最后就乱了(除非有这需求) 


华软网声明:本站内容全部来自网络,如有侵犯您版权请来信指出,本站立即删除。
进入论坛讨论:一个表的外键怎么对应多个表主键
本站热门下载
网站服务
最近更新的技巧