Postgresql
PostgreSQL 導入 CSV 文件導致語法錯誤
我正在嘗試通過“COPY”命令將 CSV 文件導入數據庫;但是,我得到了(看起來很常見的)錯誤,我需要成為超級使用者並且應該改用“\copy”。但是,當使用 \copy 時,我得到一個語法錯誤:
ERROR: syntax error at or near "\" LINE 1: \copy
插入符號指向“\”。這是我的查詢:
\copy tablename(column2, column3, column4, column5) from '/home/uploads/data.csv' WITH DELIMITER ',' CSV HEADER'
我嘗試了“複製”和“\複製”。第一個給我一個超級使用者錯誤,後者給我那個語法錯誤。關於如何解決它的任何想法?讓它起作用?
我正在通過 myPgAdmin 的 sql 輸入欄位執行命令。
我唯一的另一個問題是關於通過 tablename(column2, column3 等導入列。這是正確的語法嗎?
\copy
是一個psql(命令行)命令。它不是正常的 SQL 命令。您將需要使用 COPY 代替(但這需要文件存在於數據庫伺服器上)
在 pgAdmin(或您通過腳本或其他數據庫連接傳遞的 sql 字元串)中,您只需使用不帶“\”前綴的 COPY。
所以輸入類似:
COPY tablename....
您需要確保您具有執行該命令的相關權限,因此在這種情況下,您需要能夠登錄到數據庫並具有對“tablename”的寫入權限。Postgres 還需要能夠訪問該文件,因此路徑 /home/uploads/ 應該可以在數據庫伺服器上訪問,並且 postgres 使用者應該能夠讀取該文件 - 檢查文件和目錄的權限。