社区
疑难问题
帖子详情
一个表的外键怎么对应多个表主键
shadowjl
2008-10-05 12:59:00
一个回复表
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外键约束.....
该怎么做呢
...全文
1259
9
打赏
收藏
一个表的外键怎么对应多个表主键
一个回复表 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外键约束..... 该怎么做呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wzy_love_sly
2008-10-05
打赏
举报
回复
[Quote=引用 7 楼 Haiwer 的回复:]
外键应该只对应一个主键,你这种情况应该不设置主键
[/Quote]
海爷说的对,你多个外键,比如是级连的删除,
只要你删除任意主表的其中一个主键值,子表的外键值就被删除了
到最后就乱了(除非有这需求)
wzy_love_sly
2008-10-05
打赏
举报
回复
[Quote=引用 4 楼 shadowjl 的回复:]
加楼上,我设置的是user1和user2的外键
[/Quote]
你多外键,就得多个表同时满足要求,有一个表缺少数据就不行,
类似你的功能,最好别用约束或触发器,用程序去保证完整性
昵称被占用了
2008-10-05
打赏
举报
回复
外键应该只对应一个主键,你这种情况应该不设置主键
一定要实现约束关系可以考虑用触发器,参考
《约束类触发器》
的第二个例子,需求差不多
sqysll
2008-10-05
打赏
举报
回复
你不清楚主键表和外键表得关系啊?
主键表是父表,而外键表是子表,你往外键表中插入数据时,外键字段必须在主键表里有,才可以插入,在你得例子中,
user2里是有ID=3对应回复表得R_ID=3,但user1里得ID没有3这个值和回复表里对应,因此,就出错了。
shadowjl
2008-10-05
打赏
举报
回复
up
shadowjl
2008-10-05
打赏
举报
回复
加楼上,我设置的是user1和user2的外键
wzy_love_sly
2008-10-05
打赏
举报
回复
楼主设置的是user1的外键,和user2没有关系,user1有就能插入,没有就不能插入
shadowjl
2008-10-05
打赏
举报
回复
user2表中
id
3
4
已经有3了,但sql以为是
user1
表中的主键没有3,出错了,难道只能关联user1
wzy_love_sly
2008-10-05
打赏
举报
回复
先在主键表里插入记录3,再在回复表里插入记录3
MySql数据库技术精讲
包括
表
的各种关联关系:一对一、一对多、多对多;包括各种约束:
主键
约束、
外键
约束、非空约束、**约束等;包括分组查询、聚合函数操作、限制查询、条件查询、排序查询、分组条件过滤、
表
的连接查询、内连接查询、外...
什么是
外键
表
,什么是
主键
表
?
表
1属性有:typeid(
主键
),type
表
2属性有:goodid(
主键
),typeid(
外键
,引用
表
1中的typeid) 以上哪
一个
是
外键
表
,哪
一个
是
主键
表
表
1是
主键
表
、
表
1的
主键
字段在
表
2中做
外键
、而
表
1自己却没有
外键
表
2是
外键
表
有
一个
依赖
表
1typeid的字段、作为
外键
、取值必须是其依赖
主键
表
表
1中
主键
字段有的值 ---------------------------
MySQL数据库
主键
与
外键
主键
和
外键
都是约束。
主键
用于保持数据完整性,
外键
作用于两个
表
建立连接。下面分别介绍
主键
、
外键
及其区别。
主键
表
中经常有
多个
列,
主键
是唯一标识
表
中每行的列。
一个
表
只能有
一个
主键
,
主键
列不能包含null值。 例如: 学生
表
(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是
一个
主键
; 课程
表
(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是
一个
主键
联合
主键
当某一列不能唯一识别每行,使用联合
主键
,将两列看为
一个
整体。非空、唯一、不重复。 例如: 成绩
表
(学号,课程号,成绩) 成绩
表
中
关于数据库
主键
和
外键
(终于弄懂啦)
一、什么是
主键
、
外键
: 关系型数据库中的一条记录中有若干个属性,若其中某
一个
属性组(注意是组)能唯一标识一条记录,该属性组就可以成为
一个
主键
比如 学生
表
(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是
一个
主键
课程
表
(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是
一个
主键
成绩
表
(学号,课程号,成绩) 成绩
表
中单一
一个
属性无法唯一
mysql
表
怎么设置
一个
表
的
外键
是另一张
表
的
主键
怎么设置
外键
?
表
与
表
之间有一对多、多对多的关系,只要涉及到
表
与
表
之间的关联们就会涉及到
外键
和
主键
知识点: 那么怎么设置
外键
呢? demo: 现在有两张
表
,user
表
(编号、姓名、职务、工种、部门)、kinds
表
(工种、工种描述), kinds
表
和user
表
是一对多的关系,kinds
表
的工种发生变化的话,那么user
表
中牵扯到
多个
人的工种发生变化 user
表
kinds
表
...
疑难问题
22,206
社区成员
121,729
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章