我正在尝试将CSV文件导入postgres并收到以下错误:
"C:\\Program Files\\PostgreSQL\\11\\bin\\psql.exe" --command " "\\copy public.prisons (english_prison_names, dari_prison_names, pashto_prison_names, characters_transmitted) FROM 'C:/Data/prisons.csv' CSV ENCODING 'UTF8' QUOTE '\"' ESCAPE '''';""
错误:最后一个预期的列之后有多余的数据。上下文:COPY监狱, 第1行:“八大千山监狱设施,喀麦隆监狱,喀麦隆监狱 یدنبن,BKN ,, ...”
我已经在堆栈上阅读了多个此类问题,并检查了数据中是否有多余的空间,我的CSV文件中只有4列,而在表中创建了4列。
CSV的前几行样本,似乎已经挂在第一行了吗?
Badakhshan Prison Facility,زن دان ب دخ شان,ب د د خشا هناخ یدنب ن,BKN,,,,,,
Badghis Prison Facility,نز دا ب ن ا د سیغ,ب د ا د ب سیغ ن د ی هناخ,BDG,,,,,,
Baghlan Prison Facility,نز دا ب ن غا ل ن,ب د غا ل ب ن ن د ی هناخ,BGL,,,,,,
提前感谢您的帮助
答案 0 :(得分:0)
想通了!当我出于某种原因从excel保存到CSV时,在每行的末尾添加了所有这些多余的逗号,这导致postrgres将其视为空列,比我准备的列还要多。