我正在尝试使用MySQL Workbench Migration Wizard将Ms.Access数据库迁移到MySQL,并按照此处的所有说明进行操作:
https://dev.mysql.com/doc/workbench/en/wb-migration-database-access.html
但是,我一直在逆向工程师选择的架构中收到错误消息(见图10.29)并获得一个大的错误消息日志。通读后,我发现以下三条基本错误消息:
警告:迁移:reverseEngineerTablePK:列Transactions.ID已更改为NOT NULL,因为它是主键列。
MsAccess reverseEngineerViews:无法对“交易”进行逆向工程。
迁移:无法从系统表读取。您必须在数据库的所有系统表上授予SELECT访问权限。
如果我忽略此错误并按照说明进行操作,我发现迁移已完成。我可以找到所有表,但不能查找查询,表单,报告和宏。此外,有些表缺少主键。
有谁知道如何处理这个问题?或者我应该采取其他方式将我的ms.access数据库迁移到MySQL?
提前谢谢。
答案 0 :(得分:1)
您无法将ms访问数据库完全迁移到MySQL。完全停止。访问数据库是数据,GUI内容(表单,报告)和宏/脚本的混合。
只有数据可以迁移,GUI内容和宏/脚本不能,因为MySQL纯粹是一个数据库产品。它绝对没有任何GUI内容,也不支持Access宏,也不支持VBA。
对于查询,链接文档说默认设置不传输视图(ms访问中的查询与MySQL中的视图大致相同)。即使它们被转移,你仍然需要编写代码,没有自动迁移它们。这是有道理的,因为ms访问和MySQL具有不同的功能和sql语法。
您还需要授予对所有系统表的访问权限,而不仅仅是关系表。 SQLyog有一个good guidance here关于如何在各种版本的ms访问中完成此任务。 (不幸的是,复制其内容过于庞大和复杂。)
总而言之,MySQL工作台的ms访问迁移功能几乎可以传输所有可以自动传输的内容。