Як я можу скопіювати з локального файлу у віддалений БД у PostgreSQL? [зачинено]


9

Я новачок у psql і мені потрібна допомога. Як я можу завантажити локальний CSV у віддалений БД?

Я використовую таку команду

\COPY test(user_id, product_id, value) 
      FROM '/Users/testuser/test.tsv' WITH DELIMITER '\t' CSV HEADER;

але це пошук файлу у віддаленій БД, тоді як мені потрібно це зробити на своєму локальному ПК.


4
\copyчитає локальний файл (це psqlкоманда і може використовуватися лише зсередини psql). COPYоднак (зверніть увагу на відсутність ``) прочитає файл на сервері.
a_horse_with_no_name

тож шляху до цього немає? мені потрібно скопіювати файл на віддалений сервер?
user22149

чи є різниця в копії та \ копії? вибачте, я справді новий у PSql, знаю лише oracle, я можу це зробити без проблем
user22149

Ну і різниця полягає в тому, що один читає файл на сервері, а другий читає файл на клієнті. Очевидно, читання файлу на сервері буде швидше.
a_horse_with_no_name

1
@ user22149 Використовуйте буквальну вкладку або E'\t'. Але типова вкладка повинна бути типовою, якщо ви все одно не вказали розмежування.
Крейг Рінгер

Відповіді:


5

Тут є дві можливості.

  1. Якщо ви використовуєте psql, то \ copy - це правильний спосіб робити так, як ви згадуєте.

  2. Якщо ви використовуєте клієнтську програму, у вас є автором, то вам потрібно

    COPY FROM STDIN.....

А потім подайте файл у (див. Документацію команди COPY .

Команда КОПІЯ - трохи дивний звір. Це одна команда, яку PostgreSQL на даний момент підтримує від Quel, і тому вона є і нестандартною, і заснованою на чомусь іншому парадигмі, ніж решта команд. З цієї причини важливо читати документи відносно уважно за цією командою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.