使用 \copy 命令將資料匯入 PostgreSQL 資料庫執行個體上的資料表 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 \copy 命令將資料匯入 PostgreSQL 資料庫執行個體上的資料表

PostgreSQL \copy命令是可從psql互動式用戶端工具取得的中繼命令。您可以使用 \copy 將資料匯入RDS至 for PostgreSQL 資料庫執行個體上的資料表。若要使用 \copy 命令,首先需在目標資料庫執行個體上建立資料表結構,讓 \copy 具有複製資料的目的地。

您可以使用 從逗號分隔值 (CSV) 檔案\copy載入資料,例如已匯出並儲存至用戶端工作站的資料。

若要將CSV資料匯入 PostgreSQL 資料庫執行個體RDS的目標,請先使用 連線至目標資料庫執行個體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 會輸出錯誤訊息。

在資料庫預覽環境中使用 psql命令搭配 meta-mand \copy 建立新的資料庫執行個體,如下列範例所示。此範例使用 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 頁面,在 Meta-Commands 區段中。