2016-11-15 6 views
0

Ich versuche, eine Datenbank von MySQL nach MS Access zu importieren. Ich verfolge diese Anweisungen:Beim Importieren von MySQL-Daten in MS Access verlorene Beziehungen

Converting MySQL to MS Access

Die Datenimporte in Ordnung, aber die Beziehungen und Schlüssel verloren gehen. Irgendwelche Tipps, wie ich diese auch importieren kann? Vielen Dank.

+3

Primary erzeugen Schlüssel bleiben beim * Verknüpfen * von Tabellen erhalten, nicht aber beim Importieren. Beziehungen können nicht von außerhalb von Access importiert werden. Sie müssen beide in den Access-Tabellen neu erstellen - entweder mit DDL SQL oder mit VBA (DAO). – Andre

Antwort

2

Um Tabellenstruktur von MySQL oder einer anderen Datenbank nach MS Acces zu konvertieren, zuerst Datenbankstruktur als SQL. Sie können zum Beispiel Antworten von this Thema, dann bearbeiten Sie empfangene DDL SQL, machen Sie es kompatibel mit MS Access. Die grundlegende DDL von MySQL und Access ist ziemlich ähnlich. In der Tat sind Primärschlüssel und Beziehungen Constrains plus Indizes. Zum Beispiel, hier ist DDL für Tabelle erstellt mit Primärschlüssel, einen zusätzlichen Index und zwei Beziehungen mit Tabellen Ländern und Kunden:

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; 

Sie sollten ähnlich SQL von MySQL Tabellenstruktur Dump-Tool erhalten und nach der Bearbeitung Laufe DDL-Befehle in Zugriff manuell oder über VBA. Beachten Sie, dass DAO und integrierter Access Query Builder on delete cascade on update cascade Optionen in DDL SQL nicht unterstützt, ADO dafür verwenden, unterstützt.

Der einfachste Weg zur Strukturumwandlung Datenbank ist wie ERWin oder SAP Power CASE-Tools: Sie Datenbankstruktur von nahezu jede Datenbank reverce können, wandeln es in jede Zieldatenbank und sogar neue databese in wenige Schaltfläche klickt

+0

Ich band den MySQL-Dump in Access, aber es sagte, dass die Datei zu groß war, um in ein Abfragefenster zu passen. Der Speicher ist ~ 20 k Zeilen lang. Es gibt andere Probleme wie CREATE TABLE IF NOT EXISTS funktioniert nicht. – posfan12

+1

Natürlich können Sie nicht die gleichen Funktionen in Access bekommen, weil MySQL und Access verschiedene Arten von Datenbanken sind. Ehrlich gesagt verstehe ich nicht, warum Sie versuchen, eine so große Datenbank nach Access zu verschieben, sie ist weniger zuverlässig und hat viel mehr Einschränkungen durch den Vergleich von MySQL, zum Beispiel hat Access 2 GB Beschränkung pro Datendatei und funktioniert nicht schon nach 1,5 GB . Sie sollten Tabellen im Access-Frontend mit dem MySQL-Backend verbinden. Als Frontend ist Access perfekt. –

+0

Ich versuchte zu verknüpfen und es zeigte die Primärschlüssel, aber nicht die Fremdschlüsselbeziehungen. Ich versuche, ein Diagramm dieser Beziehungen zu exportieren, und Access hat normalerweise eine nette Beziehung. – posfan12

Verwandte Themen