ホームページ >データベース >mysql チュートリアル >異なる PostgreSQL データベース間でクエリを実行するにはどうすればよいですか?
エラー メッセージが示すように、PostgreSQL 自体はクロスデータベース クエリをネイティブにサポートしていませんが、利用可能な回避策がいくつかあります。 1 つの方法は、postgres_fdw
拡張機能を使用することです。
postgres_fdw
(外部データ ラッパー) を使用すると、場所に関係なく、PostgreSQL データベース内のテーブルに接続できます。この拡張機能を使用するには:
Postgres のバージョンが postgres_fdw
をサポートしていることを確認してください (v9.3 以降を推奨)。
クロスデータベース クエリを実行する各データベースに postgres_fdw
拡張機能をインストールします。
外部サーバーとユーザーのマッピングを作成します:
<code class="language-sql"> postgres=# CREATE SERVER foreign_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'remote_host', port '5432'); postgres=# CREATE USER MAPPING FOR CURRENT_USER SERVER foreign_server OPTIONS (user 'remote_user', password 'remote_password');</code>
外部テーブルの作成:
<code class="language-sql"> postgres=# CREATE FOREIGN TABLE cross_db_table SERVER foreign_server OPTIONS (table_name 'remote_table');</code>
9.3 より前の Postgres バージョンの場合、dblink
という名前の関数を使用してデータベース間のクエリを実行できます。 PostgreSQL とともに保守・配布されていますが、postgres_fdw
とは使用方法が異なります。 dblink
の詳細については、PostgreSQL のドキュメントを参照してください。
以上が異なる PostgreSQL データベース間でクエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。