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

问题描述:

我正试图从MySQL导入数据库到MS Access。我一直在以下这些指示:将MySQL数据导入MS Access时丢失了关系

Converting MySQL to MS Access

的进口数据不错,但关系和钥匙丢失。关于如何导入这些内容的任何提示?谢谢。

+3

小学*链接*表时保留键,但在导入时不保留。根本无法从外部Access导入关系。您将不得不在Access表中重新创建 - 无论是使用DDL SQL还是使用VBA(DAO)。 – Andre

为了将表结构从MySQL或任何其他数据库转换为MS Acces首先将数据库结构转储为SQL。例如,您可以使用this主题的答案,然后编辑收到的DDL SQL,使其与MS Access兼容。 MySQL和Access qre的基本DDL非常相似。事实上,主键和关系是约束条件和索引。举例来说,这里是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; 

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

数据库结构转换的最简单方法是使用CASE工具,如欧文或SAP PowerDesigner的:他们可以reverce数据库结构,几乎所有的数据库,将其转换为任何目标数据库,甚至产生一些按钮的新databese点击

+0

我绑定在Access中运行MySQL转储,但它表示该文件太大而无法放入查询窗口。该转储是~20K线长。还有其他问题,如CREATE TABLE IF NOT EXISTS无法正常工作。 – posfan12

+1

当然,你不能在Access中获得相同的功能,因为MySQL和Access是不同类型的数据库。坦率地说,我不明白你为什么要把这么大的数据库迁移到Access,它不太可靠,并且通过比较MySQL有更多的限制,例如Access对每个数据文件有2GB的限制,并且在1.5GB之后已经不能正常工作。您最好将Access前端中的表链接到MySQL后端。由于前端Access是完美的。 –

+0

我试过链接,它显示主键而不是外键关系。我试图导出这些关系的图表,而Access通常有一个很好的关系。 – posfan12