sql >> データベース >  >> RDS >> PostgreSQL

2つの別々のデータベースからの結果の結合

    http://wiki.postgresql.org/wiki/FAQ

    によると

    現在のデータベース以外にデータベースをクエリする方法はありません。PostgreSQLはデータベース固有のシステムカタログをロードするため、データベース間クエリがどのように動作するかは不明です。contrib/ dblinkでは、関数呼び出しを使用したデータベース間クエリが可能です。もちろん、クライアントは異なるデータベースに同時に接続し、クライアント側で結果をマージすることもできます。

    編集 :3年後(2014年3月)、このFAQエントリが改訂され、さらに役立ちました:

    複数のデータベースを使用してクエリを実行するにはどうすればよいですか?

    現在のデータベース以外のデータベースに直接クエリを実行する方法はありません。 PostgreSQLはデータベース固有のシステムカタログをロードするため、データベース間クエリがどのように動作するかは不確かです。

    PostgreSQLのSQL/MEDサポートにより、「外部データラッパー」を作成して、リモートデータベースのテーブルをローカルデータベースにリンクできます。リモートデータベースは、同じPostgreSQLインスタンス上の別のデータベース、または世界中のデータベースである可能性があります。関係ありません。postgres_fdwはPostgreSQL9.3に組み込まれており、読み取り/書き込みサポートが含まれています。 9.2の読み取り専用バージョンは、contribモジュールとしてコンパイルおよびインストールできます。

    contrib / dblinkは、関数呼び出しを使用したデータベース間クエリを可能にし、はるかに古いバージョンのPostgreSQLで使用できます。 postgres_fdwitとは異なり、条件をリモートサーバーに「プッシュダウン」できないため、多くの場合、必要以上に多くのデータをフェッチすることになります。

    もちろん、クライアントはさまざまなデータベースに同時に接続して、クライアント側で結果をマージすることもできます。



    1. MySqlテーブルが存在しない場合は挿入、そうでない場合は更新

    2. MySQLテーブルの列のサイズを変更するにはどうすればよいですか?

    3. Postgres:CASTエラーのデフォルト値を定義しますか?

    4. SQLException:プロトコル違反。 OracleJDBCDriverの問題