使用 \copy 命令将数据导入 PostgreSQL 数据库实例上的表
PostgreSQL \copy
命令是可从 psql
交互式客户端工具获取的元命令,。您可以使用 \copy
将数据导入 RDS for PostgreSQL 数据库实例上的表中。若想使用 \copy
命令,您需要先在目标数据库实例上创建表结构,以便 \copy
具有待复制数据的目标。
您可以使用 \copy
从逗号分隔值 (CSV) 文件(如已导出并保存到客户端工作站的文件)中加载数据。
要将 CSV 数据导入目标 RDS for PostgreSQL 数据库实例,请先使用 psql
连接至目标数据库实例。
psql --host=
db-instance.111122223333
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
--password --dbname=target-db
然后使用以下参数运行 \copy
命令来标识数据目标及其格式。
-
target_table
:应接收从 CSV 文件复制的数据的表名称。 -
column_list
:表的列规范。 -
'filename'
:本地工作站上 CSV 文件的完整路径。
\copy
target_table
from '/path/to/local/filename.csv
' WITH DELIMITER ',' CSV;
如果 CSV 文件包含列标题信息,则可以使用此版本的命令和参数。
\copy
target_table
(column-1
,column-2
,column-3
,...
) from '/path/to/local/filename.csv
' WITH DELIMITER ',' CSV HEADER;
如果 \copy
命令失败,PostgreSQL 会输出错误消息。
使用 \copy
元命令,在数据库预览环境中通过 psql
命令创建新的数据库实例,如以下示例所示。该示例使用 source-table 作为源表名称,使用 source-table.csv 作为 .csv 文件,使用 target-db 作为目标数据库:
对于 Linux、macOS 或 Unix:
$psql target-db \ -U <admin user> \ -p <port> \ -h <DB instance name> \ -c "\copy source-table from 'source-table.csv' with DELIMITER ','"
对于 Windows:
$psql target-db ^ -U <admin user> ^ -p <port> ^ -h <DB instance name> ^ -c "\copy source-table from 'source-table.csv' with DELIMITER ','"
有关 \copy
命令的完整详细信息,请参阅 PostgreSQL 文档中 psql 页面内的元命令