Использование функции копирования из postgresql с ftp-сервером

Мне нужно использовать запрос на копирование из postgresql, мой запрос на копирование приведен ниже (я запускаю его с помощью php)

create temp table tmp_food (like food); -- create temporary table like food

copy tmp_food from 'd:\testingfood.csv' delimiter '|' csv;  -- copy to temp table

insert into food (food_id, food_name)   -- insert into food from temp table
select food_id, food_name
from tmp_food
on conflict (food_id) do                -- update instead of error
update set food_name = excluded.food_name;

drop table tmp_food;                    -- drop temp table

Но дело в том, что мне нужно скопировать его с FTP-сервера, поэтому мне нужно изменить эту строку

скопируйте tmp_food из разделителя ‘ftp \ somefolder’ | ‘ CSV; — скопировать во временную таблицу

Кстати, это мой код для чтения CSV, но мне нужно получить путь и объединить его с моим PHP

$ftp_server = "127.0.0.1";
$ftp_username = "alex";
$ftp_userpass = "alex";
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
echo "success connect to FTP";
$contents = fread($handle, filesize($filename));
echo $contents;

// close connection
ftp_close($ftp_conn);

0

Решение

Я вижу следующие варианты:

  • Считайте файл в массив PHP и используйте pg_copy_from загрузить его во временную таблицу, используя PostgreSQL COPY FROM STDIN,

  • Напишите функцию на таком мощном языке, как PL / Pērļu который выполняет передачу файла для вас перед выполнением COPY,

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]