私は2つのデータベースを持っています:
管理者
Table
: 従業員Columns
: ID、名前、city_id接続
Table
: 街Columns
: id, name_of_city
postgre データベースのEmployee.city_id
&列を使用して、これら 2 つのテーブルを結合したいと考えています。City.id
これどうやってするの
私は2つのデータベースを持っています:
管理者
Table
: 従業員
Columns
: ID、名前、city_id
接続
Table
: 街
Columns
: id, name_of_city
postgre データベースのEmployee.city_id
&列を使用して、これら 2 つのテーブルを結合したいと考えています。City.id
これどうやってするの
Postgresql FAQによると、現在のデータベース以外に直接クエリを実行する方法はありません。ただし、 dblinkを使用できます。dblink は、データベース セッション内から他の PostgreSQL データベースへの接続をサポートするモジュールです。
技術的には、postgres モジュールdblinkを使用するとこれが可能になり、データベース間で結合できます。
そうは言っても、データベース間で外部キーを維持することに伴うアーキテクチャとデータの整合性の問題のいくつかを考慮すると、city
テーブルをそのデータとともにconnect
データベースからデータベースに移動することを検討する必要がありadmin
ます。
postgres_fdw
PostgreSQL 9.3 で利用できるようにしたい。これは、リモート テーブルへの「リンク」を作成できる SQL/MED 外部データ ラッパーです。
City テーブルを Admin データベースにリンクしてから、通常の SQL からクエリを実行できます。PostgreSQL は、リモートWHERE
エンドで条件を実行し、必要な行のみをフェッチするなどのことも行います。多くの結合タイプが利用できず、それを使用する前にデータを転送するオーバーヘッドがあるため、ローカル テーブルよりもはるかに効率的ではありません。