MySQL と MS SQL Server の異なるサーバー上のデータベースに参加するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-14 12:36:02
オリジナル
510 人が閲覧しました

How can I join databases on different servers in MySQL and MS SQL Server?

FEDERATED Storage Engine とリンク サーバーを使用して、異なるサーバー上のデータベースを結合する

MySQL では、異なるサーバー上の複数のデータベースに接続し、それらの間で結合を実行できます。これは、FEDERATED ストレージ エンジンを使用するか、MS SQL Server などの別の DBMS のリンク サーバーを使用することによって実現できます。

FEDERATED ストレージ エンジン

FEDERATED ストレージ エンジンを使用すると、仮想ストレージ エンジンを作成できます。他のサーバー上のテーブルを参照するテーブル。 FEDERATED を使用するには、リモート サーバーの接続パラメーターを指定する外部データ ラッパーを作成する必要があります。外部データ ラッパーを作成したら、リモート テーブルを参照するフェデレーテッド テーブルを作成できます。フェデレーテッド テーブルは、他のテーブルと同様にクエリで使用できます。

フェデレーテッド テーブルの作成方法の例を次に示します。

CREATE FOREIGN DATA WRAPPER my_wrapper
  OPTIONS (
    HOST 'server2',
    PORT '3306',
    USER 'username',
    PASSWORD 'password'
  );

CREATE FOREIGN TABLE my_table
  (
    id INT,
    name VARCHAR(255)
  )
  SERVER my_wrapper
  OPTIONS (
    TABLE_NAME 'my_table'
  );
ログイン後にコピー

フェデレーテッド テーブルが作成されたら、他のテーブルと同様にクエリで使用できます。

SELECT * FROM my_table;
ログイン後にコピー

MS SQL Server のリンク サーバー

MS SQL Server を使用している場合は、リンク サーバーを使用して他のテーブルに接続できます。異なるサーバー上のデータベース。リンク サーバーを使用すると、リモート テーブルに対してローカル テーブルであるかのようにクエリを実行できます。

リンク サーバーを作成するには、sp_addlinkedserver ストアド プロシージャを使用します。

EXEC sp_addlinkedserver
  @server = 'server2',
  @srvproduct = 'MySQL'
ログイン後にコピー

リンク サーバーが作成されたら、作成したら、他のサーバーと同じようにクエリで使用できます:

SELECT * FROM server2.my_database.dbo.my_table;
ログイン後にコピー

以上がMySQL と MS SQL Server の異なるサーバー上のデータベースに参加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート