Uso do comando \copy para importar dados em uma tabela em uma instância de banco de dados PostgreSQL - Amazon Relational Database Service

Uso do comando \copy para importar dados em uma tabela em uma instância de banco de dados PostgreSQL

O comando \copy do PostgreSQL é um meta-comando disponível a partir da ferramenta cliente interativa psql. Você pode usar \copy para importar dados para uma tabela na instância de banco de dados do RDS para PostgreSQL Para usar o comando \copy, você precisa primeiro criar a estrutura da tabela na instância de banco de dados de destino para que \copy tenha um destino para os dados que estão sendo copiados.

Você pode usar \copy para carregar dados de um arquivo de valores separados por vírgulas (CSV), como um que foi exportado e salvo na estação de trabalho do cliente.

Para importar os dados CSV para a instância de banco de dados do RDS para PostgreSQL de destino, primeiro conecte-se à instância de banco de dados de destino usando psql.

psql --host=db-instance.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=target-db

Você então executa \copy com os parâmetros a seguir para identificar o destino para os dados e seu formato.

  • target_table – O nome da tabela que deve receber os dados que estão sendo copiados do arquivo CSV.

  • column_list – Especificações da coluna para a tabela.

  • 'filename' – O caminho completo para o arquivo CSV na estação de trabalho local.

\copy target_table from '/path/to/local/filename.csv' WITH DELIMITER ',' CSV;

Se o arquivo CSV tiver informações de cabeçalho de coluna, você poderá usar esta versão do comando e dos parâmetros.

\copy target_table (column-1, column-2, column-3, ...) from '/path/to/local/filename.csv' WITH DELIMITER ',' CSV HEADER;

Se o comando \copy falhar, o PostgreSQL gera mensagens de erro.

Criar uma instância de banco de dados no comando psql do Ambiente de Pré-visualização do Banco de Dados com o metacomando \copy, conforme mostrado nos exemplos a seguir. Este exemplo usa source-table como o nome da tabela de origem, source-table.csv como o arquivo .csv e target-db como o banco de dados de destino:

Para Linux, macOS ou Unix:

$psql target-db \ -U <admin user> \ -p <port> \ -h <DB instance name> \ -c "\copy source-table from 'source-table.csv' with DELIMITER ','"

Para Windows:

$psql target-db ^ -U <admin user> ^ -p <port> ^ -h <DB instance name> ^ -c "\copy source-table from 'source-table.csv' with DELIMITER ','"

Para obter detalhes completos sobre o comando \copy, consulte a página psql na documentação do PostgreSQL, na seção Meta-comandos.