首页 > 解决方案 > 将外键从一个表复制到另一个表以建立一对多关系

问题描述

我正在导入要访问的 excel 表(大型平面表:table_original,具有以下列(A、B、C、D、E、F、G、H、I、J、K))。然后,我通过将数据分配到多个表来执行规范化步骤以避免冗余。在这一步之后,我想通过在平面表中添加外键来在平面表中的数据和我移动的数据之间建立一对多的关系,这样我就可以删除平面表中的属性

这是分配步骤的一个示例。我将一些列属性从平面表 (table_original) 复制到现有表 (table_dest)

db1.Execute "INSERT INTO table_dest (A, B, C, D, E)" _
    & " SELECT DISTINCT A, B, C, D, E " _
    & " FROM table_original " _
    & " WHERE NOT EXISTS( SELECT 1 FROM table_dest WHERE A = table_original.A)"

这是可行的,然后我想将 table_dest 中的新主键添加为 table_original 中的外键,这样我就可以删除 table_original 中的属性 A、B、C、D 和 E。

到目前为止,我只能想到使用带有外部和内部循环的记录集来将外键添加到 table_original 中的匹配数据中。我期待一个不断增长的数据库。这种方法似乎不是很有效。有没有更好的办法?当我将数据从 table_original 复制到 table_dest 时,有没有办法在 table_original 中添加外键?

标签: vbams-access

解决方案


推荐阅读