postgres逗号列名,导入问题

时间:2016-09-08 11:07:35

标签: postgresql csv import

我需要在表格中更新一些数据。我正在使用pgadmin3导入工具csv GUI。 我的问题是如何设置导入设置。

数据结构非常糟糕,列名如"width, inside" integer,而且我对此无能为力。

我可以忽略列名引号内的逗号(,)吗?

我得到的错误是

"ERROR: invalid input syntax for integer: ""
CONTEXT: COPY mytable, line 2, column width integer, inside: ""

所以它是以我试图避免的方式解释引号中的逗号。

额外: 我在'NULL'选项中放了'\ N',因为许多记录在csv文件中只是空的,就像“”,“”,“”,...

CSV文件和表格结构的片段

create table a (
  "Width, inside" integer,
  "Area" character varying(50),
  "Year" date
)

"width, inside", "Area", "Year"
"3","sub",""

2 个答案:

答案 0 :(得分:0)

create table a ("column, comma" int);
select "column, comma" from a;

这不会引起异常。

明确地在列名中添加带有拼写的注释是一种不好的做法。我会把它重命名为合理的东西。

答案 1 :(得分:0)

一种方法是改变分隔符,说; 。您可以在text / csv文件和导入屏幕中手动执行替换指定;作为分隔符(我想你的客户应该有它 - 看一个名为misc选项的标签或类似的标签)

此外,postgres可能还有其他问题,在字符串中间 - 可以通过用$$替换双引号来处理

因此这可能有效:

    $$width, inside$$; $$Area$$; $$Year$$