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

使用 \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 頁面。