4

我已经成功地将我的 MySQL 数据库与我的 Access 数据库文件链接起来。一切正常,除了 MySQL 数据库中的关系没有出现在 Access 中。

我使用外键在 MySQL 表中建立了很多关系,但这些关系并未反映在 Access 中。请帮助我将关系从 MySQL 数据库导入 Access。

我正在使用的软件:MySQL 版本 5,Microsoft Office 2013,Access 文件格式:.accdb

4

2 回答 2

6

虽然 MySQL 外键约束默认情况下不会显示在 Access 的“关系”选项卡中,但这些约束在 MySQL 中仍然存在,并且仍然对链接表强制执行。

例如,假设我有两个 MySQL 表,[customers] 和 [orders],在 [orders] 上有一个外键约束。如果我链接到 Access 中的这些表,并尝试在 [customerID] 与 [customers] 链接表中的 [customerID] 不匹配的 [orders] 链接表中插入一行,则插入失败:

插入失败.png

ODBC -- 在链接表“订单”上插入失败。

[MySQL][ODBC 5.2(w) 驱动程序][mysqld-5.5.29-0ubuntu0.12.04.2]无法添加或更新子行:外键约束失败(`zzzTest`、`orders`、CONSTRAINT `orders_ibfk_1`外键 (`customerID`) 参考 `customers` (`customerID`)) (#1452)

可以进入 Access 中的“关系”选项卡并为 MySQL 表创建“访问端”关系...

编辑关系.png

...但请注意,“强制引用完整性”选项显示为灰色,因为这是服务器上数据库设置的功能,而不是 Access 中的功能。所以真的,“访问端”关系提供的唯一好处是:

  • 关系的“文档”(您可以从针对 MySQL 数据库生成的数据库图表中获得),以及

  • Access 查询设计器中的链接表之间的“自动”联接(如果表具有相同名称的列,也可能在没有 [Access] 关系的情况下发生)。

由您决定创建这些“访问端”关系是否值得。

于 2013-05-10T14:27:52.040 回答
2

由于这是跨数据库,因此可能必须手动重新创建。看看这个,使用 OBDC 将 .sql 导入 MS Access

于 2013-05-09T17:31:28.240 回答