Todos os produtos
Search
Central de documentação

AnalyticDB:Importar dados locais com o comando COPY

Última atualização: Jun 27, 2026

Use o comando \copy na interface de linha de comando (CLI) psql para importar arquivos de texto locais diretamente para uma instância do AnalyticDB for PostgreSQL, sem necessidade de acesso a arquivos no servidor.

Importante

O comando \copy grava dados serialmente pelo nó coordenador. Esse método funciona bem para conjuntos de dados pequenos e médios, mas não é adequado para importações paralelas em grande escala. Para carregar grandes volumes de dados, use tabelas externas baseadas no OSS. Consulte Usar uma tabela externa para importar dados do OSS.

Quando usar \copy ou COPY

Ambos os comandos compartilham a mesma sintaxe (consulte COPY na documentação do PostgreSQL), mas são executados em contextos diferentes.

O \copy execute no cliente psql e lê arquivos da máquina local. O acesso e as permissões de arquivo seguem as regras do usuário local, não do servidor de banco de dados, o que elimina a necessidade de privilégio SUPERUSER. Como o AnalyticDB for PostgreSQL não concede permissão SUPERUSER, o comando COPY no lado do servidor com a opção FILE está indisponível; portanto, use \copy.

**\copy**

**COPY**

Executado em

Cliente psql

Servidor de banco de dados

Lê arquivos de

Máquina local

Sistema de arquivos do servidor

Requer SUPERUSER

Não

Sim (para acesso a FILE)

Suporta

FILE, STDIN, STDOUT

Apenas STDIN e STDOUT

Pré-requisitos

Antes de começar, verifique se você tem:

  • psql instalado e conectado à sua instância do AnalyticDB for PostgreSQL

  • Um arquivo de texto local para importar

  • Permissão de gravação na tabela de destino

Importar um arquivo local

Execute o comando \copy na sessão psql para carregar o arquivo em uma tabela:

\COPY table [(column [, ...])] FROM {'file' | STDIN}
[ [WITH]
  [OIDS]
  [HEADER]
  [DELIMITER [ AS ] 'delimiter']
  [NULL [ AS ] 'null string']
  [ESCAPE [ AS ] 'escape' | 'OFF']
  [NEWLINE [ AS ] 'LF' | 'CR' | 'CRLF']
  [CSV [QUOTE [ AS ] 'quote']
  [FORCE NOT NULL column [, ...]]
  [FILL MISSING FIELDS]
  [[LOG ERRORS [INTO error_table] [KEEP]
  SEGMENT REJECT LIMIT count [ROWS | PERCENT] ]

Exemplo: importe todas as linhas de um arquivo local para uma tabela chamada test1.

\COPY test1 FROM '/path/to/localfile';

Verificar a importação

Após executar o \copy, confirme se os dados foram carregados com sucesso:

SELECT COUNT(*) FROM test1;

Se a contagem de linhas corresponder ao arquivo de source, a importação foi concluída.

Caso tenha usado LOG ERRORS, consulte a tabela de erros para revisar as linhas rejeitadas:

SELECT * FROM error_table;

Usar JDBC em vez de psql

Para importar dados programaticamente, use o Java Database Connectivity (JDBC). O driver JDBC do PostgreSQL expõe a interface CopyIn, que encapsula a instrução COPY. Consulte Interface CopyIn na documentação do JDBC para PostgreSQL.

Próximos passos