PostgreSQL에서 로컬 파일에서 원격 DB로 복사하는 방법은 무엇입니까? [닫은]


9

나는 psql의 초보자이며 도움이 필요하다. 로컬 CSV를 원격 DB에로드하려면 어떻게해야합니까?

다음 명령을 사용하고 있습니다

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

그러나 이것은 로컬 DB에서 파일을 수행 해야하는 동안 원격 DB에서 파일을 검색합니다.


4
\copy로컬 파일을 읽습니다 ( psql명령이며 내부에서만 사용할 수 있음 psql). COPY그러나 (없는``)는 서버에서 파일을 읽습니다.
a_horse_with_no_name 14

그래서 방법이 없어? 파일을 원격 서버에 복사해야합니까?
user22149

copy와 \ copy에 차이가 있습니까? 죄송합니다, 저는 psql에서만 정말 새로운 것입니다 oracle 거기에서 아무 문제없이 이것을 할 수 있습니다
user22149

차이점은 하나는 서버에서 파일을 읽고 다른 하나는 클라이언트에서 파일을 읽는다는 것입니다. 서버에서 파일을 읽는 것이 더 빠를 것입니다.
a_horse_with_no_name

1
@ user22149 리터럴 탭 또는을 사용하십시오 E'\t'. 그러나 delim을 지정하지 않으면 tab이 기본값이어야합니다.
Craig Ringer

답변:


5

여기에는 두 가지 가능성이 있습니다.

  1. psql을 사용하는 경우 \ copy는 언급 한대로 작업을 수행하는 올바른 방법입니다.

  2. 작성한 클라이언트 프로그램을 사용하는 경우 다음을 수행해야합니다.

    COPY FROM STDIN.....

그런 다음 파일을 공급하십시오 ( COPY 명령문서 참조) .

COPY 명령은 약간 이상한 짐승입니다. PostgreSQL은 현재 Quel에서 지원하는 명령이므로 비표준이며 나머지 명령과 다른 패러다임을 기반으로합니다. 이러한 이유로이 명령에 대한 문서를 상대적으로주의 깊게 읽어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.