1

pgsql_fdwモジュールを調査していますが、次の状況に遭遇しました。

リモート データベースのコピーであるローカル データベースがありますが、データが異なります。開発と本番。本番バージョンを指す外部テーブルを作成したかったのです。外部テーブルの名前は一意でなければならないことがドキュメントに示されていたため、fdw スキーマを作成し、その中にすべての外部テーブルを配置することにしました。私は実行しました:

create foreign table foreign_table(columna bigint, columnb text)  
server foreign_server;

どうやらしかし、pgsql_fdw は完全に修飾されたテーブル名の間で 1 対 1 のマッピングを使用し、もちろん「fdw.foregin_table」はforeign_server には存在せず、「public.foreign_table」なので、次のようになります。

ERROR:  could not execute EXPLAIN for cost estimation  
DETAIL:  ERROR:  schema "fdw" does not exist

ドキュメントには、CREATE FOREIGN TABLE のオプション パラメータがあります。

OPTIONS ( option 'value' [, ...] )  
Options to be associated with the new foreign table.  
The allowed option names and values are specific to each foreign data wrapper  
and are validated using the foreign-data wrapper's validator function.  
Option names must be unique.

私の質問は次のとおりです。pgsql_fdw のオプションは何ですか? リモートとローカルが同じであると想定するのではなく、外部テーブル名を指定する特定のオプションはありますか?

4

2 に答える 2

2

必要なオプションは次のとおりです。

CREATE FOREIGN TABLE your_local_shema.your_local_table (
  field_1 int, field_2 int, ...
)
SERVER foreign_server
OPTIONS (SCHEMA_NAME 'your_remote_schema', TABLE_NAME 'your_remote_table')
于 2014-02-19T18:12:43.230 に答える