Como posso copiar do arquivo local para o banco de dados remoto no PostgreSQL? [fechadas]

9

Sou iniciante no psql e preciso de ajuda. Como carregar um CSV local em um banco de dados remoto?

Estou usando o seguinte comando

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

mas isso pesquisa o arquivo no banco de dados remoto enquanto eu preciso fazer isso no meu PC local.

user22149
fonte
4
\copylê um arquivo local (é um psqlcomando e só pode ser usado de dentro psql). COPYno entanto (observe o `` ausente) lerá o arquivo no servidor.
precisa saber é o seguinte
então não tem como fazer isso? preciso copiar o arquivo para o servidor remoto?
precisa saber é o seguinte
existe alguma diferença em copiar e \ copiar? desculpe eu sou muito novo no psql só sei oráculo não posso fazer isso sem qualquer problema
user22149
Bem, a diferença é que um lê o arquivo no servidor e o outro está lendo o arquivo no cliente. Obviamente, a leitura do arquivo no servidor será mais rápida.
a_horse_with_no_name
11
@ user22149 Use uma guia literal ou E'\t'. Mas tab deve ser o padrão se você não especificar um delim de qualquer maneira.
Craig campainha

Respostas:

5

Existem duas possibilidades aqui.

  1. Se você estiver usando o psql, \ copy é a maneira correta de fazer as coisas como você mencionou.

  2. Se você estiver usando um programa cliente que você criou, será necessário

    COPY FROM STDIN.....

E, em seguida, alimente o arquivo (consulte a documentação no comando COPY .

O comando COPY é um animal ligeiramente estranho. É o único comando que o PostgreSQL suporta atualmente no Quel e, portanto, não é padrão e é baseado em um paradigma diferente do restante dos comandos. Por esse motivo, é importante ler os documentos com bastante atenção nesse comando.

Chris Travers
fonte