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

将MySQL数据导入MS Access时关系丢失,mysql,ms-access,Mysql,Ms Access,我正在尝试将数据库从MySQL导入MS Access。我一直遵循这些指示: 数据导入正常,但关系和键丢失。有没有关于如何导入这些内容的提示?谢谢。为了将表结构从MySQL或任何其他数据库转换为MS Acces,首先将数据库结构转储为SQL。例如,您可以使用来自主题的答案,然后编辑收到的DDL SQL,使其与MS Access兼容。MySQL的基本DDL和Access qre非常相似。实际上,主键和关系是约束,加上索引。例如,下面是DDL,用于创建具有主键、一个附加索引和两个与表国家/地区和客户

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


数据导入正常,但关系和键丢失。有没有关于如何导入这些内容的提示?谢谢。

为了将表结构从MySQL或任何其他数据库转换为MS Acces,首先将数据库结构转储为SQL。例如,您可以使用来自主题的答案,然后编辑收到的DDL SQL,使其与MS Access兼容。MySQL的基本DDL和Access qre非常相似。实际上,主键和关系是约束,加上索引。例如,下面是DDL,用于创建具有主键、一个附加索引和两个与表国家/地区和客户的关系的表:

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,并在编辑后在Access中手动或使用VBA运行DDL命令。请注意,DAO和内置的Access查询生成器不支持DDL SQL中关于删除级联更新级联的
选项,请使用ADO,它支持


数据库结构转换的最简单方法是使用诸如ERWin或SAP PowerDesigner之类的CASE工具:它们可以改变几乎任何数据库的数据库结构,为了将表结构从MySQL或任何其他数据库转换为MS Acces,首先将数据库结构转储为SQL,只需点击几个按钮即可将其转换为任何目标数据库,甚至可以生成新的数据库。例如,您可以使用来自主题的答案,然后编辑收到的DDL SQL,使其与MS Access兼容。MySQL的基本DDL和Access qre非常相似。实际上,主键和关系是约束,加上索引。例如,下面是DDL,用于创建具有主键、一个附加索引和两个与表国家/地区和客户的关系的表:

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,并在编辑后在Access中手动或使用VBA运行DDL命令。请注意,DAO和内置的Access查询生成器不支持DDL SQL中关于删除级联更新级联的
选项,请使用ADO,它支持


数据库结构转换的最简单方法是使用诸如ERWin或SAP PowerDesigner之类的CASE工具:它们可以更改几乎任何数据库的数据库结构,将其转换为任何目标数据库,甚至只需单击几次按钮即可生成新的数据库。链接表时保留主键,但导入时不保留主键。根本无法从外部访问导入关系。您必须在Access表中重新创建这两个表-使用DDL SQL或VBA(DAO)。链接表时保留主键,但导入时不保留主键。根本无法从外部访问导入关系。您必须在Access表中重新创建这两个文件-使用DDL SQL或VBA(DAO)。我在Access中运行MySQL转储,但它说文件太大,无法放入查询窗口。垃圾场约有20k条管线长。还有其他一些问题,比如如果不存在就创建表不起作用。当然,你不能在Access中获得相同的功能,因为MySQL和Access是不同类型的数据库。坦白地说,我不明白你为什么要把这么大的数据库移到Access上,它不太可靠,而且通过比较MySQL,它有更多的限制,例如Access对每个数据文件有2GB的限制,并且在1.5GB之后就不能正常工作了。您最好将Access前端中的表链接到MySQL后端。因为前端访问是完美的。我尝试了链接,它显示了主键,但没有显示外键关系。我正在尝试导出这些关系的图表,Access通常有一个很好的图表。我在Access中运行MySQL转储,但它说文件太大,无法放入查询窗口。垃圾场约有20k条管线长。还有其他一些问题,比如如果不存在就创建表不起作用。当然,你不能在Access中获得相同的功能,因为MySQL和Access是不同类型的数据库。坦白地说,我不明白你为什么要把这么大的数据库移到Access上,它不太可靠,而且通过比较MySQL,它有更多的限制,例如Access对每个数据文件有2GB的限制,并且在1.5GB之后就不能正常工作了。您最好将Access前端中的表链接到MySQL后端。因为前端访问是完美的。我尝试了链接,它显示了主键,但没有显示外键关系。我正在尝试导出这些关系的图表,Access通常有一个很好的图表。