postgresql
EXTENSION dblink и postgres_fdw
Поиск…
Синтаксис
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
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 вместо отдельной таблицы. Выполните следующие шаги:
- Создать EXTENSION:
CREATE EXTENSION postgres_fdw;
- Создать СЕРВЕР:
CREATE SERVER server_name FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'host_ip', dbname 'db_name', port 'port_number');
- Создание ПОЛЬЗОВАТЕЛЯ:
CREATE USER MAPPING FOR CURRENT_USER SERVER server_name OPTIONS (user 'user_name', password 'password');
- Создайте новую схему для доступа к схеме серверной БД:
CREATE SCHEMA schema_name;
- Импортировать схему сервера:
IMPORT FOREIGN SCHEMA schema_name_to_import_from_remote_db FROM SERVER server_name INTO schema_name;
- Доступ к любой таблице схемы сервера:
SELECT * FROM schema_name.table_name;
Это можно использовать для доступа к множественной схеме удаленной БД.