注册 登录
编程论坛 SQL Server论坛

请教参照完整性的问题

hwoarangzk 发布于 2007-11-30 12:01, 1596 次点击
我这边只有英文的教材,所以看得不是很懂。请问参照完整性中有一个set to null.这个是什么意思?能举个简单的例子吗?谢谢!
5 回复
#2
purana2007-11-30 14:16
没见过..
参照完整性约束..一般是指外键..foreign key  references
#3
hwoarangzk2007-11-30 15:49
我看教材上说的好像是指,假设No是主表的外键,从表的主键,如果从表中有一行No=2,但是主表中没有这个纪录,如果要修改这个纪录,那么就会在某个地方出现null值。有这个说法吗?
#4
bygg2007-12-01 14:05
参照完整性 一般都是说的 违反了表与表之间的关系
#5
provoke2007-12-02 17:26
举个例子
有下面两个表

部门(部门号,部门名)
员工(员工号,姓名,部门号)

其中员工表的“部门号”参照部门表中的“部门号”字段,“员工.部门号”为外键,参照“部门.部门号”字段;
也就是不允许将某一员工的部门号设置为部门表中不存在的一个部门号,因为每个员工都必需属于某一个特定的部门,而不允许将员工分配到一个不存在的部门;

在管理关系时,“级联更新相关字段”和“级联删除相关记录”的选项,就是被参照关系(部门表的部门号)发生变化时,参照关系(员工表的部门号)自行相应地更新或删除,以保持参照完整性;

如果以后更新部门表,修改或者删除了某一部门号,则参照该部门号的员工表中,如果有员工的部门号为该被修改或删除的部门号,员工表中的此部门号会被按指定规则修改或更新,如果用户没有指定则按默认的规则修改或更新;

Set to Null 就类似于:
部门表的某一部门号被修改后,如果员工表中有员工的部门号为该被修改的部门号,则将其设置为空。
#6
hwoarangzk2007-12-03 10:12
谢谢!
1