访问不导入MySQL链接表的关系
作者:互联网
我已成功将MySQL数据库与Access数据库文件相关联.一切都运行正常,除了MySQL数据库中的关系没有出现在Access中.
我使用外键在MySQL表中建立了很多关系,但这些关系并没有反映在Access中.请帮我将MySQL数据库中的关系导入Access.
我正在使用的软件:MySQL版本5,Microsoft Office 2013,Access文件格式:.accdb
解决方法:
虽然默认情况下在Access的“关系”选项卡中没有显示MySQL外键约束,但这些约束仍然存在于MySQL中,并且仍然对链接表强制执行.
例如,假设我有两个MySQL表,[customers]和[orders],在[orders]上有一个外键约束.如果我链接到Access中的那些表,我尝试在我的[orders]链接表中插入一行,其中[customerID]与我的[customers]链接表中的[customerID]不匹配,插入失败:
ODBC –insert on a linked table ‘orders’ failed.
[MySQL][ODBC 5.2(w) Driver][mysqld-5.5.29-0ubuntu0.12.04.2]Cannot add or update a child row: a foreign key constraint fails (`zzzTest`,`orders`, CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`customerID`) REFERENCES `customers` (`customerID`)) (#1452)
您可以进入Access中的Relationships选项卡,并为MySQL表创建“访问端”关系……
…但请注意,“强制参照完整性”选项是灰色的,因为这是服务器上数据库设置的功能,而不是Access中的功能.实际上,“访问方”关系提供的唯一好处是:
>关系的“文档”(可以从针对MySQL数据库生成的数据库图中获得),以及
> Access查询设计器中的链接表之间的“自动”连接(如果表具有相同名称的列,也可以在没有[Access] Relationships的情况下发生).
您可以自行决定创建这些“访问端”关系是否值得.
标签:mysql,ms-access,ms-office 来源: https://codeday.me/bug/20190825/1722046.html