ホームページ >データベース >mysql チュートリアル >異なる MySQL サーバー間でテーブルを結合するにはどうすればよいですか?

異なる MySQL サーバー間でテーブルを結合するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-18 12:30:11882ブラウズ

How Can I Join Tables Across Different MySQL Servers?

MySQL の別々のサーバーからのテーブルの結合

2 つの異なるサーバー (server1 とserver2) からテーブルを結合しようとすると、エラーが発生する可能性があります。 MySQL の FEDERATED ENGINE を使用してこの課題を克服するアプローチは次のとおりです。

フェデレーテッド テーブルの使用

サーバー間のギャップを埋めるには、リモート テーブルに基づいてフェデレーテッド テーブルを作成します。 。両方のテーブルの構造は同一のままである必要があります。

コード例:

test_table という名前のリモート テーブルに基づいて federated_table というフェデレーテッド テーブルを作成します:

CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';

フェデレーション接続を確立すると、サーバー間でテーブルを結合することができます。 local:

SELECT a.field1, b.field2
FROM federated_table AS a
INNER JOIN [server2, 3312].[db2].table2 AS b
ON a.field1 = b.field2;

注: フェデレーション接続を確立するには、fed_user アカウントが両方のサーバーで適切な権限を持っている必要があります。

以上が異なる MySQL サーバー間でテーブルを結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。