Uso del comando \copy para importar datos en una tabla en una instancia de base de datos PostgreSQL - Amazon Relational Database Service

Uso del comando \copy para importar datos en una tabla en una instancia de base de datos PostgreSQL

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 ','"

En 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 en la documentación de PostgreSQL, en la sección Meta-Commands (Metacomandos).