access数据违反参照完整_access数据库勾选实施参照完整性报错和解决办法

解决方法是先在有关联的一方表添加相应的记录,然后再于多方表追加或修改对应的记录;又或者只添加或修改为一方表已经存在的关联记录到多方表。当然删除相应的表间关系也可以避免报错,但是这是最糟糕的解决办法,因为这样会破坏数据结构的严整性!

假设学生表和成绩表通过学生ID字段建立了一对多参照完整性关系,如果为成绩表添加一条学生ID为“0100”的成绩记录,而学生表里并不存在“0100”的学生ID,或者修改某条成绩记录的“学生ID”为一个学生表中不存在的“学生ID”;反之若果成绩表里已经存在“学生ID”为“0100”的成绩记录,现在要删除学生表里“学生ID”为“0100”的记录(若未设置级联删除的话),这些都会导致违反外键约束。

access编辑关系时勾选“实施参照完整性”复选框有什么作用?

参照完整性要求表间关系中不允许引用不存在的实体。两张表之间如果实施了参照完整性(也可称之为设置了外键约束),关联表的某一方表中的记录发生新增、更新和删除等操作时,要是这些操作违反了外键约束,系统就会报错并拒绝执行相应操作以保持数据始终处于完整、和谐和正确的状态并可减少冗余。

当我们把2张表建立联系的时候,这2个表肯定是有关系的。它可以是一对一的关系;如果是多对多的关系,这是不允许出现的(说明表及其关系设置有问题);大多数都是一对多的关系,当建立了一对多关系时数据库引擎就自然建立完整性原则,它能保证2个表之间的关系及数据得到正确的维护,从最基本的意义上说,防止“多端”出现不完整的记录。

参照完整性规则要求:1、不允许在“多端”的字段中输入1个“一端”主键不存在的值;2、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许从“一端”删除这个记录(除非选择了级联删除相关字段,这样会同时删除“一端”和“多端”的记录,从而保证数据的完整性),因为如果允许又回出现第一种情况。3、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许改变“一端”主键的值(除非选择了级联更新相关字段,这样会同时更新“一端”和“多端”的主键值,从而保证数据的完整性),因为如果允许又回出现第一种情况。

如果你选择了“实施参照完整性”,程序会检测你输入的数据是否符合上面所说的“参照完整性规则要求”,如果违反上述规则,会给出提示并且不接受你输入的数据;如果同时选择了“级联删除相关字段”,从“一端”删除记录时,“多端”的相关记录同时被删除;如果选择了“级联更新相关字段”,则允许更改“一端”连接字段,但同时“多端”的相关字段也同时被更改。

为保证数据的完整性,您应尽可能实施参照完整性。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值