Поиск…


Синтаксис

  • dblink ('dbname = name_db_distance port = PortOfDB host = HostOfDB user = usernameDB password = passwordDB', 'MY QUESRY')

  • dbname = имя базы данных

  • port = Порт базы данных

  • host = Host из базы данных

  • user = имя пользователя базы данных

  • пароль = пароль базы данных ',

  • MY QUESRY = это может быть любая операция, которую я хочу сделать SELECT, INSERT, ...

dblink EXTENSION - это способ подключения другой базы данных и обеспечения работы этой базы данных, чтобы сделать это вам:

1-Создать расширение dblink:

CREATE EXTENSION dblink;

2-Сделайте свою операцию:

Например, выберите другой атрибут из другой таблицы в другой базе данных:

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;

Внешний обертка данных

Для доступа к полной схеме сервера db вместо отдельной таблицы. Выполните следующие шаги:

  1. Создать EXTENSION:
    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. Создайте новую схему для доступа к схеме серверной БД:
   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; 

Это можно использовать для доступа к множественной схеме удаленной БД.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow