Question

J'ai actuellement une base de données MySQL, que je voudrais importer dans MS Access.

Est-il possible de le faire tout en gardant toutes les relations intactes (à savoir sans exporter vers .csv, ou en utilisant ODBC)?

Je suis un noob dans ce domaine de sorte que toute aide est grandement appréciée.

Merci.

Était-ce utile?

La solution

Vous devez résoudre deux problèmes différents:

  1. Création d'une base de données MS Access vide avec une structure qui correspond à la structure de base de données MySQL.

  2. Extraction des données de MySQL et le chargement dans MS Access.

Ce n'est pas facile car les différentes bases de données SQL offrent différentes caractéristiques structurelles, différents types de données, et ainsi de suite. Plus complexe votre utilisation de MySQL est le plus probable que vous tomberez sur un certain show-bouchon lors de la conversion (par exemple, l'accès ne prend pas en charge les déclencheurs du tout). A l'inverse si vous utilisez MySQL comme un simple stocker des données que vous pouvez trouver la conversion assez facile.

Pour obtenir une base de données MS Access avec la même structure que la base de données MySQL, votre meilleur pari est de trouver une définition de base de données / outil schématisant qui offre l'ingénierie inverse et supporte à la fois MySQL et MS Access. Utilisez-le pour l'ingénierie inverse de votre base de données MySQL dans un schéma de base de données, puis modifiez la base de données sous-jacente à MS Access et utiliser l'outil pour générer une base de données.

Consultez Dezign des bases de données qui (sur papier, de toute façon) offre les fonctionnalités que vous devrez faire.

Pour pomper les données à travers, il y a un certain nombre d'outils. Ce type d'opération est génériquement appelé ETL (Extract, Traduire, Load).

Autres conseils

Voulez-vous dire SQL Server? Un bon point de départ pourrait être de vérifier SQL Server Integration Services (SSIS de), qui peut être utilisé pour transférer des données comme ça.

Google sera également utile, consultez le premier résultat:

http://support.microsoft.com/kb/237980

Par ailleurs, vous avez dit « .sql » dans votre question: un fichier .SQL est un fichier de script, ce qui pourrait faire quoi que ce soit de créer une base de données, insérer des données, table de baisse, les données de suppression, ou les permissions appropriées, procédures de système d'appel et redémarrer une machine, formater un disque, envoyez un e-mail .. Juste pour ref, les fichiers .SQL ne sont pas le format de stockage utilisé par SQL Server.

Alors que vous pouvez générer un script de schéma de votre base de données dans les fichiers de script par quelque chose comme SQLyog, vous trouverez que la syntaxe varie assez la base de données à base de données (MySQL Access, dans votre cas) que vous ne pouvez pas appliquer directement les scripts.

Avec beaucoup d'effort un script de conversion pourrait être créé en éditant le script (peut-être automatisé avec un programme, en fonction de la taille du script résultant). Je pense que vous seriez mieux servis en utilisant ODBC pour copier les tables (et les données), puis d'extraire et de réappliquer les relations du script généré par la main. Beaucoup de temps, mais aussi une opération d'une fois que je l'espère.

Lorsque les deux systèmes sont la même base de données, il existe des outils qui peuvent faire la génération de comparaison et de script (TOAD for MySQL et Redgate Comparer pour Microsoft SQL), mais ils ne font pas le travail de base de données croisée (au moins pas ceux I je suis au courant).

Si vous créez une source de données ODBC, vous pouvez utiliser TransferDatabase à importer à partir de votre base de données MySQL. Vous pouvez le faire manuellement avec la commande GET DATA EXTERNE (ou quoi que ce soit dans le A2007 / A2010) et voir comment cela fonctionne. Il ne sera pas obtenir tous les types de données tout à fait exact, mais vous pouvez faire un peu massant et obtenir probablement plus près de ce qui fonctionnera le mieux.

Y at-il une raison quelconque vous ne pouvez pas simplement lien vers les tables de MySQL et de les utiliser directement? C'est, pourquoi avez-vous besoin d'importer dans Access du tout?

Vous pouvez essayer d'utiliser ceci: Conversion MS Access à MySQL avec des relations

fonctionne très bien et d'exporter toutes les relations.

Accès: requête exécutée. Assurez-vous d'adapter le code SQL puisque chaque SGBDR a sa propre sintaxis (malgré SQL étant une norme ANSI).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top