サーチ…


構文

  • dblink( 'dbname = name_db_distanceポート= PortOfDBホスト= HostOfDBユーザー= usernameDBパスワード= passwordDB'、 'MY QUESRY')

  • dbname =データベースの名前

  • port =データベースのポート

  • host =データベースのホスト

  • user =データベースのユーザ名

  • パスワード=データベースのパスワード '、

  • 私のQUESRY =これは私がしたい操作、SELECT、INSERT、...することができます

dblink EXTENSIONは、別のデータベースに接続し、このデータベースを必要なだけ操作できるようにするための技術です。

1 - dblinkエクステンションを作成する:

CREATE EXTENSION dblink;

2 - あなたの操作を行います:

exemple別のデータベースの別のテーブルからいくつかの属性を選択します。

SELECT * FROM 
dblink ('dbname = bd_distance port = 5432 host = 10.6.6.6 user = username 
password = passw@rd', 'SELECT id, code FROM schema.table') 
AS newTable(id INTEGER, code character varying);

エクステンションFDW

FDWはdblinkの実装です。それはもっと役に立ちますので、それを使用してください:

1 - エクステンションを作成する:

CREATE EXTENSION postgres_fdw;

2 - サーバーの作成:

CREATE SERVER name_srv FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'hostname', 
dbname 'bd_name', port '5432');

3 - postgresサーバーのユーザーマッピングを作成する

CREATE USER MAPPING FOR postgres SERVER name_srv OPTIONS(user 'postgres', password 'password');

4 - 外部表の作成:

CREATE FOREIGN TABLE table_foreign (id INTEGER, code character varying) 
SERVER name_srv OPTIONS(schema_name 'schema', table_name 'table');

5 - あなたのデータベースにあるように、この外部テーブルを使用してください:

SELECT * FROM table_foreign;

外部データラッパー

1つのテーブルの代わりに、サーバーデータベースの完全なスキーマにアクセスする。以下の手順に従ってください:

  1. エクステンションを作成:
    CREATE EXTENSION postgres_fdw;
  1. サーバーの作成:
    CREATE SERVER server_name FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'host_ip', 
    dbname 'db_name', port 'port_number');
  1. ユーザーマッピングの作成:
    CREATE USER MAPPING FOR CURRENT_USER
    SERVER server_name
    OPTIONS (user 'user_name', password 'password');
  1. サーバーDBのスキーマにアクセスするための新しいスキーマの作成:
   CREATE SCHEMA schema_name;
  1. サーバースキーマのインポート:
     IMPORT FOREIGN SCHEMA schema_name_to_import_from_remote_db
     FROM SERVER server_name
     INTO schema_name;
  1. サーバースキーマの任意のテーブルにアクセスする:
    SELECT * FROM schema_name.table_name; 

これは、リモートDBの複数のスキーマにアクセスするために使用できます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow