【发布时间】:2020-02-12 10:56:11
【问题描述】:
我正在尝试使用 bash 脚本将 CSV 文件插入到 PSQL 表中。我的第一个目标是解析 CSV 文件,然后逐行插入数据。 COPY 命令对我来说不方便。我使用了以下脚本,但它不起作用。
编辑:顺便说一句,我没有创建表。我应该吗?
#!/bin/sh
while IFS=, read col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col11 col12
do
echo "INSERT INTO table_name ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l") VALUES ('$col1','$col2','$col3','$col4','$col5','$col6','$col7','$col8','$col9','$col10','$col11','$col12');"
done < ppr.csv | sudo psql -U pg_user -d test;
【问题讨论】:
-
您能否提供有关您的问题的更多信息?您说“它不起作用”,那么当它不起作用时会发生什么?你有什么错误吗?
-
错误:字符 13 处不存在关系“表名”第 1 行:插入表名(a、b、c、d、e、f、g、h、i、j、k、l ) 价值观..
-
尝试使用单引号作为字段名称或转义双引号。
-
@Poshi - 错误:单引号后字符 18 处的“'a'”或附近的语法错误。
-
你应该转义内部双引号。
标签: bash postgresql shell csv insert