質問

頭をぶつけてきたよ SQL Server 2005 大量のデータを取り出そうとしています。300 近くのテーブルを含むデータベースを渡されたので、これを MySQL データベースに変える必要があります。私の最初の呼び出しはbcpを使用することでしたが、残念ながら有効なCSVは生成されません。文字列はカプセル化されていないため、コンマを含む文字列(または区切り文字として使用するもの)を含む行を処理できません。 CSV ではデータ型について何も分からないため、create table ステートメントはすべて手作業で記述する必要があります。

SQL Server と MySQL の両方に接続してコピーを実行できるツールがあれば、さらに良いでしょう。ビュー、ストアド プロシージャ、トリガーなどは失われますが、基本型のみを使用するテーブルをある DB から別の DB にコピーするのは難しくありません。それは...ですか?

誰かそのようなツールを知っていますか?整数、浮動小数点、日付時刻、文字列をサポートしている限り、どれだけ多くの仮定が行われたり、どのような単純化が行われたりしても気にしません。剪定や正規化などの作業をたくさん行う必要があります。とにかく、キーやリレーションシップなどを保持することには関心がありませんが、最初のデータ セットをすぐに取得する必要があります。

正しい解決策はありません

他のヒント

私が見つけた最良の方法は、 MySQL 移行ツールキット MySQL によって提供されます。私はいくつかの大規模な移行プロジェクトでこれを使用して成功しました。

SQL Server 2005 の「Standard」、「Developer」、および「Enterprise」エディションには、 SSIS, 、SQL Server 2000 の DTS を置き換えたものです。SSIS には独自の DB への接続が組み込まれており、他の人が MySQL 用に作成した接続を見つけることができます。 ここ は一例です。接続を確立したら、2 つの間でデータを移動する SSIS パッケージを作成できるようになります。

SQlServer から MySQL にデータを移動する必要はありませんでしたが、MySQl 接続がインストールされれば、2 つの SQLServer DB 間でデータを移動するのと同じように動作すると思います。これは非常に簡単です。

MSSQL Management Studio を使用して、テーブルを MySQL OLE DB に移行しました。データベースを右クリックし、[タスク] -> [データのエクスポート] に移動し、MsSQL OLE DB ソースと MySQL OLE DB ソースを指定し、2 つのデータ ソース間の列マッピングを作成できます。

ほとんどの場合、MySQL 宛先にデータベースとテーブルを事前にセットアップする必要があります (エクスポートではテーブルを自動的に作成する必要がありますが、これは失敗することがよくあります)。データベースを右クリックして「タスク」→「スクリプトの生成」を使用すると、MySQL にテーブルをすばやく作成できます。作成スクリプトが生成されたら、MSSQL から MYSQL に存在するキーワードとタイプをステップ実行して検索/置換する必要があります。

もちろん、通常のようにデータベースをバックアップし、MSSQL バックアップを MYSQL に復元するユーティリティを見つけることもできます。ただし、存在するかどうかはわかりません。

独自の PHP ソリューションを展開することは確かに機能しますが、ある DB から別の DB にスキーマを自動的に複製する良い方法があるかどうかはわかりません (おそらくこれがあなたの質問でした)。

データをコピーするだけの場合、または 2 つの DB 間で変更されたスキーマ間で変換するためにカスタム コードが必要な場合は、PHP 5.2 以降と PDO ライブラリを使用することをお勧めします。PDO ODBC (および MSSQL ドライバー) を使用して接続できるようになります。他のライブラリを使用して、大きなテキスト フィールドやマルチバイト文字を MSSQL から PHP に取得する際に多くの問題が発生しました。

試すもう 1 つのツールは、SQLMaestro スイートです。 http://www.sqlmaestro.com 正確なツールを特定するのは少し難しいですが、複数のデータベース プラットフォームでさまざまなタスクを処理するさまざまなツールが無料および有料で提供されています。MySQL には、必要な適切な「インポート」ツールがあると思われるため、まず MySQL 用の Data Wizard ツールを試してみることをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top