

# Uso del comando \$1copy para importar datos en una tabla en una instancia de base de datos PostgreSQL
<a name="PostgreSQL.Procedural.Importing.Copy"></a>

El comando `\copy` PostgreSQL es un metacomando disponible desde la herramienta de cliente interactiva de `psql`. Puede usar `\copy` para importar datos a una tabla de su instancia de base de datos de RDS for PostgreSQL. Para usar el comando `\copy`, primero debe crear la estructura de la tabla en la instancia de base de datos de destino para que `\copy` tenga un destino para los datos que se copian.

Puede usar `\copy` para cargar los datos de un archivo de valores separados por comas (CSV), como uno que se haya exportado y guardado en su estación de trabajo de cliente.

Para importar los datos CSV a la instancia de base de datos de RDS for PostgreSQL de destino, primero conéctese a la instancia de base de datos de destino con `psql`. 

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

A continuación, se ejecuta el comando `\copy` con los siguientes parámetros para identificar el destino de los datos y su formato.
+ `target_table`: el nombre de la tabla que debe recibir los datos que se copian del archivo CSV.
+ `column_list`: las especificaciones de las columnas de la tabla. 
+ `'filename'`: la ruta completa del archivo CSV en la estación de trabajo local. 

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

Si el archivo CSV tiene información sobre el encabezamiento de las columnas, puede utilizar esta versión del comando y los parámetros.

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

 Si el comando `\copy` falla, PostgreSQL genera mensajes de error.

Creación de una nueva instancia de base de datos en el entorno de vista previa de bases de datos utilizando el comando `psql` con el metacomando `\copy`, tal y como se muestra en los siguientes ejemplos. Este ejemplo usa *source-table* como nombre de la tabla de origen, *source-table.csv* como archivo .csv y *target-db* como base de datos de destino:

Para Linux, macOS o 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 obtener más información sobre el comando `\copy`, consulte la página de [psql](http://www.postgresql.org/docs/current/static/app-psql.html) en la documentación de PostgreSQL, en la sección *Meta-Commands* (Metacomandos). 