PostgreSQL | Как из файла скопировать все данные таблицы с разделителем в нужные столбцы другой таблицы на сервере? — efim360.ru

PostgreSQL | Как из файла скопировать все данные таблицы с разделителем в нужные столбцы другой таблицы на сервере?

Таблица в СУБД

Для анализа, сначала получаем все данные нужной таблицы "rrr" на сервере:

SELECT * FROM public.rrr

В таблицу "rrr" мы будем загружать данные из файла на физическом сервере.

Таблица "rrr" содержит 10 столбцов. Они называются (для простоты):

r1, r2, r3, r4, r5, r6, r7, r8, r9, r10

Первичным ключом в этой таблице является "r1". Он формируется автоматически при добавлении новой строки. Первичный ключ является автоинкрементом (стартует с 1 и прибавляет 1 на каждую строку).

Пустая таблица с 10 столбцами в pgAdmin 4
Пустая таблица с 10 столбцами в pgAdmin 4

Файл на сервере

В файле "qwe.txt" имеются данные только для 4 столбцов. Строки разделены переносами. Внутри строк проставлены разделители "^" между данными столбцов.

Файл "qwe.txt" из 3 строк и 4 столбцов
Файл "qwe.txt" из 3 строк и 4 столбцов

Мы хотим добавить данные всех 4 столбцов из файла в определённые столбцы нашей таблицы: r3, r4, r6, r9. Как это сделать?

Вася1^Вася2^Вася3^Вася4
Дима11^Дима12^Дима13^Дима14
Маша74^Маша73^Маша72^Маша71

 

Решение

Нам нужен синтаксис команды COPY FROM.

После ключевого слова COPY, мы записываем название нашей таблицы в которую будет "заливать" данные.

ВАЖНО!!!

После этого в круглых скобках мы перечисляем названия столбцов, в которые хотим "залить" все данные из файла.

COPY public.rrr(r3, r4, r6, r9) FROM '/tmp/qwe.txt' delimiter '^';

Вызов этого SQL-запроса будет добавлять данные в нужные нам столбцы таблицы. Таким образом мы можем исключать из "заливки" лишние столбцы.

Успешно добавили данные в нужные столбцы таблицы из файла в pgAdmin 4
Успешно добавили данные в нужные столбцы таблицы из файла в pgAdmin 4

Информационные ссылки

Синтаксис SQL-команды SELECT на русском языке - https://postgrespro.ru/docs/postgresql/14/sql-select

Синтаксис SQL-команды COPY на русском языке - https://postgrespro.ru/docs/postgresql/14/sql-copy

Команды SQL в PostgreSQL 14 - https://postgrespro.ru/docs/postgresql/14/sql-commands

Официальный сайт PostgreSQL - https://www.postgresql.org

Графический веб-интерфейс для управления СУБД PostgreSQL - https://www.pgadmin.org

Операционная система Debian - https://www.debian.org

pgAdmin 4 | Первичный ключ автоинкремент

Поделись записью