我需要在表格中更新一些数据。我正在使用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",""
答案 0 :(得分:0)
create table a ("column, comma" int);
select "column, comma" from a;
这不会引起异常。
明确地在列名中添加带有拼写的注释是一种不好的做法。我会把它重命名为合理的东西。
答案 1 :(得分:0)
一种方法是改变分隔符,说; 。您可以在text / csv文件和导入屏幕中手动执行替换指定;作为分隔符(我想你的客户应该有它 - 看一个名为misc选项的标签或类似的标签)
此外,postgres可能还有其他问题,在字符串中间 - 可以通过用$$替换双引号来处理
因此这可能有效:
$$width, inside$$; $$Area$$; $$Year$$