0

現在、MySQLにデータベースがあり、MSAccessにインポートしたいと思います。

すべての関係をそのままに(つまり、.csvにエクスポートせずに、またはODBCを使用して)これを行うことは可能ですか?

私はこの分野の初心者なので、どんな助けでも大歓迎です。

ありがとう。

4

5 に答える 5

1

2つの異なる問題を解決する必要があります。

  1. MySQLデータベース構造と一致する構造を持つ空のMSAccessデータベースを作成します。

  2. MySQLからデータを抽出し、MSAccessにロードします。

さまざまなSQLデータベースがさまざまな構造機能、さまざまなデータ型などを提供するため、これは簡単ではありません。MySQLの使用が複雑になるほど、変換中に何らかのショーストッパーが発生する可能性が高くなります(たとえば、Accessはトリガーをまったくサポートしていません)。逆に、MySQLを単純なデータストアとして使用している場合は、変換がかなり簡単であることがわかります。

MySQLデータベースと同じ構造のMSAccessデータベースを取得するには、リバースエンジニアリングを提供し、MySQLとMSAccessの両方をサポートするデータベース定義/ダイアグラム作成ツールを見つけるのが最善の策です。これを使用して、MySQLデータベースをデータベース図にリバースエンジニアリングし、基になるデータベースをMS Accessに変更し、ツールを使用してデータベースを生成します。

Dezign For Databasesをチェックしてください。これは(とにかく紙の上で)これを行うために必要な機能を提供します。

データを送り出すために、いくつものツールがあります。この種の操作は、一般にETL(抽出、変換、読み込み)と呼ばれます。

于 2011-09-07T15:44:52.087 に答える
1

SQL Serverのことですか?そのようなデータ転送に使用できる SQL Server Integration Services (SSIS) を調べることから始めることをお勧めします。

Google も役立ちます。最初の結果を確認してください。

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

ところで、質問で「.sql」と言いましたが、.SQL ファイルはスクリプト ファイルであり、データベースの作成、データの挿入、テーブルの削除、データの削除、または適切なアクセス許可の付与、システム プロシージャの呼び出しなど、何でも実行できます。マシンを再起動し、ドライブをフォーマットし、電子メールを送信します..参考までに、.SQL ファイルは SQL Server で使用されるストレージ形式ではありません。

于 2011-09-07T10:14:35.077 に答える
0

SQLyog などを使用してデータベースのスキーマをスクリプト ファイルにスクリプト化することはできますが、スクリプトを直接適用することはできないため、データベースごとに (この場合は MySQL から Access に) 構文が大きく異なることがわかります。

多大な努力を払って、スクリプトを編集することで変換スクリプトを作成できます (結果のスクリプトのサイズによっては、おそらくプログラムで自動化されます)。ODBC を使用してテーブル (およびデータ) をコピーし、生成されたスクリプトから手動でリレーションシップを抽出して再適用する方がよいと思います。時間はかかりますが、1 回限りの操作で済むことを願っています。

両方のシステムが同じデータベースである場合、比較とスクリプト生成を実行できるツール (MySQL の場合は TOAD、Microsoft SQL の場合は RedGate Compare) がありますが、データベース間の作業は行いません (少なくとも私が知っているものではありません)。 )。

于 2011-09-07T15:35:25.293 に答える
0

ODBC DSN を作成すると、TransferDatabase を使用して MySQL データベースからインポートできます。GET EXTERNAL DATA コマンド (または A2007/A2010 のコマンド) を使用して手動で実行し、それがどの程度うまく機能するかを確認できます。すべてのデータ型を正確に取得できるわけではありませんが、いくつかのマッサージを行うことで、最適なデータ型に近づけることができます。

MySQL テーブルにリンクして直接使用できない理由はありますか? つまり、そもそも Access にインポートする必要があるのはなぜでしょうか。

于 2011-09-08T00:46:39.280 に答える
-2

アクセス: クエリを実行します。すべての RDMS には独自の構文があるため (SQL は ANSI 標準ですが)、SQL コードを適合させるようにしてください。

于 2011-09-07T12:22:34.863 に答える