访问不为 MySQL 链接表导入关系

Posted

技术标签:

【中文标题】访问不为 MySQL 链接表导入关系【英文标题】:Access not importing relationships for MySQL linked tables 【发布时间】:2013-05-09 17:26:57 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

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

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

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

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

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

【讨论】:

【参考方案2】:

由于这是跨数据库,可能需要手动重新创建。 看看这个Importing .sql into MS Access using OBDC

【讨论】:

以上是关于访问不为 MySQL 链接表导入关系的主要内容,如果未能解决你的问题,请参考以下文章

将 Access 数据库与 Mysql Server 链接并使用 Access 作为前端 [表问题]

SqlServer 如何通过命令窗口向远程链接服务器数据库表导入数据,或者用其他方法导入数据

MySQL之外键约束(FOREIGN KEY)

MS Access 链接表自动长整数

ms访问链接表缺少主键

没有链接表/模型的多对多关系?