Access键值冲突该怎么解决?

2024-10-07 11:48:04网络知识悟空

本文重点介绍在执行Access追加查询时,遇到键值冲突错误的三种可能原因及应对办法,对于更新查询也可参照分析。对于Access初学者,经常会碰到系统的出错提示,但又不知所云。本人总结10多年的数据库应用经验,将常见问题“键值冲突”的三种常见原因分析及应对方法分享给各位。

虽然本文的制作环境是Access2016,但操作与2010版甚至2003版是一致的。如图,错误提示,是有2条记录由于键值冲突无法追加。这个追加查询是追加4条记录的,如果按“是”就只追加2条,如果按“否”就不执行追加查询(追加0条)。

Access键值冲突该怎么解决?

Access键值冲突该怎么解决?

方法一:

原因三,外键缺少记录。如图,订单表和供应商表设置了关系,供应商表的主键供应商与订单表供应商字段作了关联,实施参照完整性,所以订单表的供应商字段是外键。追加表中有一条含有“戊供应商”的记录,而供应商表没有对应的记录,这也是会造成键值冲突的。

Access键值冲突该怎么解决?

应对三,补值。如图,在供应商表补充“戊供应商”的记录。

Access键值冲突该怎么解决?

方法二:

原因一,追加表中本身就存在重复键值。如图,订单表是被追加数据进去的表,主键是订单号。主键是不可为空不可重复的。这里的追加表中订单号字段有2条记录重复了(订单号记录为:D0021)。

Access键值冲突该怎么解决?

应对一,删除追加表的重复记录。经过甄别,第2条和第4条记录是完全相同的,删除第4条记录即可。

Access键值冲突该怎么解决?

方法三:

原因二,追加表与被追加表有重复键值。如图,订单表已经存有D0012的订单号记录(第3条记录),而追加表也有这个订单号(也是第3条记录)。

Access键值冲突该怎么解决?

应对二,删除重复记录。经过甄别,追加表和被追加表的这条记录是完全相同的。可删除追加表记录,也可以删除被追加表的这条记录(如图是后者)。

Access键值冲突该怎么解决?

注意事项:本范例是根据追加查询错误制作的,对于更新查询出现的键值冲突,也可参考。

发表评论: