Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал.
Создание внешний таблиц на сервере PostgreSQL
Внешние таблицы (foreign tables) в PostgreSQL является гибким инструментом доступа к данным вне объектов текущей базы данных. Это могут быть другие базы того-же сервера PostgreSQL и ли других серверов или совсем не табличные данные, например находящиеся вне сервера.
Для работы с внешними таблицами следует начать с установки расширения postgres_fdw, которое и позволяет работать с данными из других баз данных или других структур, например обычных файлов. Для это надо выполнить команду
create extension postgres_fdw;
Если команда выполняется с ошибкой, то, скорее всего, не установлена стандартная компонента postgres-contrib. После установки команда должна выполниться. Следующий шаг это создание внешнего сервера
create server fs1 foreign data wrapper postgres_fdw
option (host '10.10.235.14', dbname 'words');
Создав сервер, мы присвоили ему имя fs1. При этом мы указали адрес сервер и имя базы данных. В данном случае мы предполагаем, что по указанному адресу располагается сервер PostgreSQL, который слушает внешние запросы через стандартный порт. Следующий шаг это создать учётную запись для доступа к серверу. Например, так
create user mapping for postgres server fs1
options (user 'postgres', password '123');
Теперь всё готово для создания внешней таблицы.
create foreign table tbl1(
id int4,
"group" bpchar(30),
pops int4
)
server fs1 options (table_name 'groups');
Замечание
group взято в кавычки по той простой причине, это является ключевым словом языка SQL. Двойные кавычки указывают, что это именно объект, что это имя объекта, а не элемент команды.
Данная команда создала внешнюю таблицу tbl1 с указанием столбцов и их типов, так чтобы это соответствовало удалённой таблицы. Теперь можно получать данные из удалённой таблицы просто командой select
select * from tbl1;
Результат выполнения команды будет таким же, как если бы таблица находилась в текущей базе данных. Интересно, что можно не только получать данные из удалённой таблицы, но и обновлять её обычными командами SQL.
Подборка материалов по реляционным базам данных:
Пока всё!
Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.