关于复合关键字的问题 ,帮帮我吧,被搞得头晕脑涨

nofaitureoftwo 2004-10-26 09:19:52
书上压根没提,只能问了:在Oracle中
我先说一下,将许多列共同作为主关键字,所以我这些列称这些列为复合主关键字。

1,既然有了复合主关键字,那当然就有与复合主关键字相对应的复合外部关键字了,对吗?

2,创建复合主关键字和复合外部关键字的SQL语法是怎样的?

3,复合主关键字与复合外部关键字之间的列的对应关系如何?列的顺序,列名,列的SQL类型是不是必须完全一致?

4,若已定义了一些列为复合主关键字,那麽,可否再在这些列中选取一列或几列再作为该表的另一个(复合)主关键字或(复合)外部关键字?SQL语句怎麽写?

5,同理,若已定义了一些列为复合外部关键字,那麽,可否再在这些列中选取一列或几列再作为该表的另一个复合)主关键字或(复合)外部关键字?SQL语句怎麽写?
...全文
45 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
LDH202 2004-10-30
一般来说键这种东西不能进行组合,如楼主所说,单外键可对应于一个复合主键:
则连接关系为 A.fk = SomeOperation(B.pk1, B.pk2)
这样的连接操作已经超出了一般关系型数据库连接的范畴,意义实在不大,因为其连接运算速度低

至于你的后续问题我想楼主自己思考一下就有答案了
回复
nofaitureoftwo 2004-10-27
复合外键,应存在吧?

另外,单外键可对应于一个复合主键吗?

个人认为,外部关键字的列数与它所对应的主关键字的列数必须相同。

把这些基本东西搞懂,个人觉得很重要。谢谢了。

回复
trumplet 2004-10-27
一般情况下,多列复合主键,组成主键的每个列,极有可能分别作为其它表(单列主键)的外键,所以,个人认为“复合外键”就无意义了。
回复
nofaitureoftwo 2004-10-27
外部关键字的列数与它所对应的主关键字的列数必须相同吗?
回复
cold_blooded 2004-10-26
不懂, 学习下
回复
LDH202 2004-10-26
1。这种用法比较少见,很少见,有(却又不这么称呼)
2。好像没有见到过,不同的数据库系统不一定支持
3。类型必须一致,名称不一定
4。不可以,关键字只能有一个
5。但是关键字中部分或全部主属性可以是外部关键字

这种问题实用价值不太,不建议深究
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告