有网友咨询一个问题,希望在两个表中通过建立关联来更新其中一个表中的值到另一个表中,这两个表的记录数都比较多,都超过了53万条记录。
建立一个更新查询,在使用过程中,出现了如下错误:
因为更新查询是手工拖动鼠标建立的,各种检查确保查询完全正确,却依然出现上面的错误提示,这个犯难了,花了1个多小时检查各种可能导致错误的情况,仍然找不到原因。于是只好采用DAO代码来循环读取记录,去更新值。
通过写DAO代码,运行后发现,到ID记录1093822时,代码出错退出了,于是打开表,发现下一条记录如下图所示:
这时,手动删除这一条记录,重新运行更新查询,发现仍然提示:
明明刚才手动删除了,真是抓狂啊!
打开表一看,那条 #已删除的 仍然存在。
用DAO代码去读,结果仍然报错,说明两个方法都不行。
前后花了3小时,仍然解决不了这个问题。
最后,在网友的提示下,说试试压缩并修复数据库,终于解决了!
我们按照下图所示压缩并修复数据库(这里是2010版本):
然后找到刚刚出错的表,发现它的主键没有了,那么我们重新把主键设置回去:
重新运行更新查询,OK,没有问题了。
- End -
领取专属 10元无门槛券
私享最新 技术干货