Jestem nowicjuszem w psql i potrzebuję pomocy. Jak mogę załadować lokalny CSV do zdalnego DB?
Używam następującego polecenia
\COPY test(user_id, product_id, value)
FROM '/Users/testuser/test.tsv' WITH DELIMITER '\t' CSV HEADER;
ale to przeszukuje plik na zdalnej bazie danych, podczas gdy muszę to zrobić na moim komputerze lokalnym.
postgresql
postgresql-9.1
użytkownik22149
źródło
źródło
\copy
czyta plik lokalny (jest topsql
polecenie i można go używać tylko od wewnątrzpsql
).COPY
jednak (zauważ brakujące ``) odczyta plik na serwerze.E'\t'
. Ale tab powinien być domyślny, jeśli i tak nie określisz ograniczenia.Odpowiedzi:
Istnieją tutaj dwie możliwości.
Jeśli używasz psql, to \ copy jest poprawnym sposobem na robienie rzeczy jak wspomniałeś.
Jeśli korzystasz z programu klienckiego, którego jesteś autorem, musisz to zrobić
Następnie podaj plik (patrz dokumentacja polecenia COPY .
Polecenie KOPIUJ jest nieco dziwną bestią. Jest to jedno polecenie, które obecnie obsługuje PostgreSQL z Quel, więc jest ono zarówno niestandardowe, jak i oparte na czymś innym niż inne polecenia. Z tego powodu ważne jest, aby dokładnie przeczytać dokumentację dotyczącą tego polecenia.
źródło