全部產品
Search
文件中心

ApsaraDB RDS:如何處理雲資料庫 RDS PostgreSQL 版使用copy命令匯入資料報錯問題

更新時間:Jun 19, 2024

問題描述

在雲資料庫 RDS PostgreSQL 版中,執行如下SQL語句匯入資料。

copy mp3 (NAME,city,nation,lat,lng,url,mediatype,type) from  '/home/alex/tmp/pos.csv' with csv;

系統提示如下錯誤。

ERROR:  must be superuser to COPY to or from a file
HINT:  Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.

問題原因

預設copy是需要superuser的許可權,雲資料庫RDS PostgreSQL版沒有開放該許可權。

解決方案

登入到本機執行如下命令,繞過限制。

cat [$Table_Name].csv | ~/workspace/pg94/bin/psql -h [$Host] -p [$Port] -U [$User] -c "copy [$Table_Name] from stdin"
說明
  • [$Table_Name]指資料庫的表名。

  • [$Host]值要登入的RDS執行個體主機名稱或者IP地址。

  • [$Port]指連接埠號碼

  • [$User]指登入使用者名稱

更多資訊

雲資料庫RDS for PostgreSQL版遷移資料更多方法,請參見使用pspl命令遷移PostgreSQL資料的方法

適用於

  • 雲資料庫RDS PostgreSQL版