我已成功将MySQL数据库与Access数据库文件相关联。一切都运行正常,除了MySQL数据库中的关系没有出现在Access中。
我使用外键在MySQL表中建立了很多关系,但这些关系并没有反映在Access中。请帮助我将MySQL数据库中的关系导入Access。
我正在使用的软件:MySQL版本5,Microsoft Office 2013,Access文件格式:.accdb
答案 0 :(得分:5)
虽然默认情况下在Access的“关系”选项卡中没有显示MySQL外键约束,但这些约束仍然存在于MySQL中,并且仍然对链接表强制执行。
例如,假设我有两个MySQL表,[customers]和[orders],在[orders]上有一个外键约束。如果我链接到Access中的那些表,我尝试在我的[orders]链接表中插入一行,其中[customerID]与我的[customers]链接表中的[customerID]不匹配,插入失败:
ODBC - 在链接表'orders'上插入失败。
[MySQL] [ODBC 5.2(w)驱动程序] [mysqld-5.5.29-0ubuntu0.12.04.2]无法添加或更新子行:外键约束失败(`zzzTest`,`orders`,CONSTRAINT `orders_ibfk_1` FOREIGN KEY(`customerID`)REFERENCES`客户`(`customerID`))(#1452)
您可以进入Access中的Relationships选项卡,并为MySQL表创建“访问端”关系......
...但请注意,“强制参照完整性”选项是灰色的,因为这是服务器上数据库设置的功能,而不是Access中的功能。实际上,“访问方”关系提供的唯一好处是:
关系的“文档”(可以从针对MySQL数据库生成的数据库图中获得)和
“自动”连接Access查询设计器中的链接表(如果表中的列具有相同名称,也可以在没有[Access] Relationships的情况下发生。)
由您来决定创建这些“访问方”关系是否值得。
答案 1 :(得分:1)
由于这是跨数据库,因此可能必须手动重新创建。 看看这个,Importing .sql into MS Access using OBDC