我正在尝试将数据库从MySQL导入MS Access。我一直在遵循这些指示:
数据导入正常,但关系和密钥丢失。关于我如何导入这些的任何提示?感谢。
答案 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工具:它们可以反映几乎所有数据库的数据库结构,将其转换为任何目标数据库,甚至只需点击几下按钮即可生成新的数据库