1. ホーム
  2. sql

[解決済み] PostgreSQLでデータベースをまたいだ問い合わせは可能ですか?

2022-04-24 20:51:17

質問

以下のエラーメッセージから、答えは「いいえ」だと思います。 このGoogleの結果 しかし、PostgreSQL を使用してデータベースを横断するクエリを実行する方法はありますか?

databaseA=# select * from databaseB.public.someTableName;
ERROR:  cross-database references are not implemented:
 "databaseB.public.someTableName"

私は、2つのデータベースでパーティショニングされたデータを扱っていますが、データは2つのデータベースで共有されています。 users テーブルを使用しています。) なぜスキーマではなく、2つの別々のデータベースなのか全く分かりませんが、人生とはそういうものです...。

解決方法は?

注:元の質問者が示唆したように、同じマシンに2つのデータベースをセットアップする場合、おそらく2つの スキーマ その場合、両者間のクエリに特別なものは必要ありません。

postgres_fdw

使用方法 postgres_fdw (外部データラッパー) を使用して、ローカルまたはリモートのあらゆる Postgres データベースのテーブルに接続することができます。

があることに注意してください。 他の一般的なデータソースのための外部データラッパー . 現時点では postgres_fdwfile_fdw は、Postgresの公式配布物に含まれています。

9.3以前のバージョンのPostgresの場合

これほど古いバージョンはもうサポートされていませんが、2013年以前のPostgresのインストールでこれを行う必要がある場合、以下のような関数が用意されています。 dblink .

私は使ったことがありませんが、PostgreSQLの他の部分と一緒に保守・配布されています。もしあなたがLinuxディストロに付属するバージョンのPostgreSQLを使用しているなら、postgresql-contribというパッケージをインストールする必要があるかもしれません。