Торжественное открытие первого поста. Yay.
Я сейчас работаю над проектом базирования данных на моей стажировке, который требует использования postgresql, с которым я, к сожалению, незнаком.
В настоящее время я написал командный файл, целью которого является автоматизация импорта данных из файла CSV в базу данных.
Основная команда выглядит следующим образом:
psql -p "% port%" -d "% dbname%" -U "% имя пользователя%" -f "% SQLFilePath%" -v v1 = "% CSVFilePath%"
Здесь я передаю параметр v1 в мой файл .txt, указанный после -f.
В моем файле .txt у меня есть команда \ echo: v1, которая точно отображает путь к файлу, указанный в командном файле.
Однако при выполнении функции копирования, которая копирует содержимое файла .csv в таблицу tmp для вставки в мою текущую таблицу, я сталкиваюсь с этой ошибкой:
psqlC: / имя произвольного файла / имя произвольного файла .txt :: неверный аргумент
Команда, которую я использую в своем файле .txt, который приводит к этой ошибке:
\ COPY tmp_table FROM: 'v1' DELIMITER ',';
Надеясь быть просветленным здесь.
Полный код в моем файле .txt выглядит следующим образом:
CREATE TEMP TABLE tmp_table AS
ВЫБРАТЬ *
ОТ public.test
Без данных;
\ COPY tmp_table FROM: 'v1' DELIMITER ',';
Вставить в таблицу
ВЫБЕРИТЕ DISTINCT ON (colu1) *
ОТ tmp_table
ПО КОНФЛИКТУ НИЧЕГО НЕ ДЕЛАЕТ;
DROP TABLE tmp_table;