/> 一个表的外键怎么对应多个表主键 [已结帖,结帖人: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 的回复: 外键应该只对应一个主键,你这种情况应该不设置主键 海爷说的对,你多个外键,比如是级连的删除, 只要你删除任意主表的其中一个主键值,子表的外键值就被删除了 到最后就乱了(除非有这需求)