带有postgres的整数的输入语法无效

时间:2015-05-29 11:25:19

标签: sql postgresql

我有一张桌子:

                id | detail
                 1 | ddsffdfdf ;df, deef,"dgfgf",/dfdf/

当我这样做时:insert into details values(1,'ddsffdfdf ;df, deef'); =>插入得当 当我将插入的值从数据库复制到文件时,该文件包含:1 ddsffdfdf ;df, deef 然后我将整个csv文件加载到pgsql数据库,其格式为:1 ddsffdfdf ;df, deef 错误:整数的输入语法无效:" 1 ddsffdfdf;获取df,deef。如何解决问题?

1 个答案:

答案 0 :(得分:3)

CSV需要一个Postgres会识别的分隔符,将文本分成相应的字段。你的分隔符是一个空间,这是不够的。您的CSV文件应该更像:

1,"ddsffdfdf df, deef"

你的SQL应该是这样的:

COPY details FROM 'filename' WITH CSV;

WITH CSV 非常重要,因为它告诉Postgres使用逗号作为分隔符并根据该值解析您的值。因为您的第二个字段包含逗号,所以您希望将其值括在引号中,以使其逗号不会被误认为是分隔符。

要查看格式正确的CSV文件的一个很好的示例,您可以输出当前表:

COPY details TO '/your/filename.csv' WITH CSV;