Найти в Дзене
programmer's notes (python and more)

Реляционные базы данных и язык SQL. Внешние таблицы (foreign table), доступ csv-файлу

Доброго здоровья читателям моего канала programmer's notes. Поддерживаем мой канал.

Использование внешних таблиц для доступа к csv-файлам

Продолжение статьи

О файлах csv есть несколько статей на моём канале, например вот эта

Создание внешней таблицы доступа к csv-файлу похоже на то, как создавать внешние таблицы к таблицам других серверов. Но есть, нюансы. И так

Предварительно нужно создать расширение file_fdw, если оно не создано ранее.

create extension file_fdw;

Следующий шаг создание сервера для расширения filt_fdw.

create server serv2 foreign data wrapper file_fdw;

Как и предыдущем случае разрешим доступ пользователя, например postgres к серверу.

create user mapping for postgres server serv2;

Ну и наконец создание самой внешней таблицы.

create foreign table public.ftbl (
name text,
position text,
year integer,
salary integer
)
server serv2
options (
filename 'table.csv',
format 'csv',
header 'true',
delimiter ','
);

Путь к файлу здесь идёт от корневого каталога PostgreSQL. У меня он находится здесь /var/lib/pgsql/data, именно там лежит указанный файл. Ещё один важный момент. Структура таблицы должна соответствовать структуре файла csv. Кроме этого мы явно указали разделитель в файле csv, это важный момент и это важный момент.

После того, как внешняя таблица создана, к ней можно обращаться обычным способом

select * from ftbl1;

Пока всё!

Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Иностранных таблиц нам не хватало, своих что-ли мало ;)
Иностранных таблиц нам не хватало, своих что-ли мало ;)