将MySQL数据导入MS Access时丢失了关系

时间:2016-11-15 11:09:14

标签: mysql ms-access

我正在尝试将数据库从MySQL导入MS Access。我一直在遵循这些指示:

Converting MySQL to MS Access

数据导入正常,但关系和密钥丢失。关于我如何导入这些的任何提示?感谢。

1 个答案:

答案 0 :(得分:2)

为了将表结构从MySQL或任何其他数据库转换为MS Acces,首先将数据库结构转储为SQL。例如,您可以使用this主题的答案,然后编辑收到的DDL SQL,使其与MS Access兼容。 MySQL和Access的基本DDL非常相似。事实上,主键和关系是约束,加上索引。例如,这里是用于创建具有主键的表的DDL,一个附加索引以及与表Country和Customers的两个关系:

create table CustomersAddresses
(
    ID_CustomerAddress   COUNTER         not null,
    ID_Customer          INTEGER,
    AddressLIne1         Text(255),
    AddressLIne2         Text(255),
    ID_Country           INTEGER,
constraint PK_CUSTOMERSADDRESSES primary key (ID_CustomerAddress)
);

create  index ID_Customer on CustomersAddresses
(
   ID_Customer          ASC
);

alter table CustomersAddresses
   add constraint FK_CustomersAddresses_REF_Countries foreign key (ID_Country)
      references Countries (ID_Country);

alter table CustomersAddresses
   add constraint FK_CustomersAddresses_REF_Customers foreign key (ID_Customer)
      references Customers (Id_Customer)  on delete cascade on update cascade;

您应该从MySQL表结构转储工具接收类似的SQL,并在手动或使用VBA编辑Access中运行DDL命令之后。请注意,DAO和内置的Access查询构建器不支持DDL SQL中的on delete cascade on update cascade选项,为此使用ADO,它支持。

数据库结构转换最简单的方法是使用ERWin或SAP PowerDesigner等CASE工具:它们可以反映几乎所有数据库的数据库结构,将其转换为任何目标数据库,甚至只需点击几下按钮即可生成新的数据库