标题:外键的级联更新问题
只看楼主
小水滴
Rank: 1
等 级:新手上路
威 望:2
帖 子:227
专家分:0
注 册:2006-8-22
结帖率:100%
 问题点数:0 回复次数:6 
外键的级联更新问题
数据库中有三个表:
表一中有:student_id char(5) primary key
表二中有:course_id char(3) primary key

表三中有:student_id char(5)
course_id char(3)

现欲设定表三中的student_id列和course_id列分别是表一和表二的外键,并且级联更新、级联删除。
create table t1
(student_id char(5) references student(student_id) on update cascade on delete cascade,
course_id char(3) references course (course_id) on update cascade on delete cascade,
grade numeric(4,1) )

现在的问题是不能同时二个列的外键都设置成级联更新、级联删除(一个列是可以的)。

哪位朋友有办法?

搜索更多相关主题的帖子: 级联 
2007-03-29 16:10
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
得分:0 
我感觉从数据库的完整性考虑的话,这个是不能实现的

26403021 sql群 博客 blog./user15/81152/index.shtml
2007-03-29 16:13
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 
不用想办法了 不可能实现的 而且也是不合逻辑的

2007-03-29 16:30
小水滴
Rank: 1
等 级:新手上路
威 望:2
帖 子:227
专家分:0
注 册:2006-8-22
得分:0 
以下是引用Kendy123456在2007-3-29 16:30:04的发言:
不用想办法了 不可能实现的 而且也是不合逻辑的

在access中是可以实现的,在SQL中为什么不能实现呢?什么道理啊?

[此贴子已经被作者于2007-3-29 16:58:48编辑过]


2007-03-29 16:58
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
得分:0 

有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2007-03-29 17:09
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 
由单个 DELETE 或 UPDATE 触发的一系列级联引用操作必须构成不包含循环引用的树。
在 DELETE 或 UPDATE 所产生的所有级联引用操作的列表中,每个表只能出现一次。
级联引用操作树到任何给定表的路径必须只有一个。
树的任何分支在遇到指定了 NO ACTION 或默认为 NO ACTION 的表时终止。

而且 级联的操作是单向的

2007-03-29 17:36
小水滴
Rank: 1
等 级:新手上路
威 望:2
帖 子:227
专家分:0
注 册:2006-8-22
得分:0 
终于理解了,谢谢各位!


2007-03-30 09:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-127813-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.343581 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved