仪器社区

access数据库的软件,总是提示错误数据库中的表错误时怎么回事啊

香港进口车行 2013-01-30
错误提示是“由于数据表‘dept’需要一个相关记录,不能添加或修改记录“... 错误提示是“由于数据表‘dept’需要一个相关记录,不能添加或修改记录“
评论
全部评论
l馬l
看了错误提示,您应该至少是有2个表且建立了关系。

当我们把2张表建立联系的时候,这2个表肯定是有关系的。它可以是一对一的关系;如果是多对多的关系,这是不允许出现的(说明表及其关系设置有问题);大多数都是一对多的关系,当建立了一对多关系时数据库引擎就自然建立完整性原则,它能保证2个表之间的关系及数据得到正确的维护,从Z基本的意义上说,防止“多端”出现不完整的记录。
参照完整性规则要求:1、不允许在“多端”的字段中输入1个“一端”主键不存在的值;2、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许从“一端”删除这个记录(除非选择了级联删除相关字段,这样会同时删除“一端”和“多端”的记录,从而保证数据的完整性),因为如果允许又回出现diyi种情况。3、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许改变“一端”主键的值(除非选择了级联更新相关字段,这样会同时更新“一端”和“多端”的主键值,从而保证数据的完整性),因为如果允许又回出现diyi种情况。

不知道以上内容理解否?我再举个例子加以说明。2个表,学生表的主键是学号,成绩表主键是学号和学科,2个表通过“学号”建立关系,学生表肯定是“一段”,成绩表是“多段”。
学生表 成绩表
学号 姓名 地址 电话 学号 学科 分数
1 张三 a 1 1 数学 80
2 李四 b 2 1 语文 70
2 数学 100
现在,假如将“学生表”的学号1更改为3,那么“成绩表”里的“学号为”1的记录是谁的呢?本来是张三的成绩,现在不知道是谁的了,这样就出现数据的不完整,当“实施参照完整性”后,程序不允许这样,就会弹出类似“由于数据表‘dept’需要一个相关记录,不能添加或修改记录”的提示框。当然,如果勾选了“级联更新相关字段”,那么“成绩表”的学号1也会同时更改为3 ,保证了数据的完整性。如果删除了“学生表”的张三整条记录,道理和上面的一样。
另一种情况,假如我们更改的是“多端”的数据,比如,将“成绩表”的“学号”为1的更改为5 ,由于“学生表”里没有“学号”为5的数据,这样的更改是不允许的,同样会弹出错误提示框。同理,如果“成绩表”里添加了一个“学生表”里不存在的学号的相关记录,比如,在“成绩表”添加 6 ,英语 ,60 添加的成绩内容没有对应的人,毫无意义,一样是不允许的。

说了这么多,不知明白否?你的情况很可能是类似我说的Z后一种情况,也就是更改或添加了记录,但另一个表没有相关的记录,你可以对照你2个表的数据,仔细看看。
16 0 2013-02-01 0条评论 回复
卡就是大方家
约束限制吧
8 0 2013-01-31 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论