

# Uso do comando \$1copy para importar dados em uma tabela em uma instância de banco de dados PostgreSQL
<a name="PostgreSQL.Procedural.Importing.Copy"></a>

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](http://www.postgresql.org/docs/current/static/app-psql.html) na documentação do PostgreSQL, na seção *Meta-comandos*. 