"整数的输入语法无效"在pgAdmin中

时间:2015-07-28 20:42:16

标签: postgresql csv pgadmin

我将数据迁移到Postgresql。我可以将数据生成为CSV或制表符分隔的文件,并且我尝试使用pgAdmin导入这些文件。

示例CSV文件看起来像完全,如下所示:

86,72,1,test
72,64,1,another test

我导入的表格如下所示:

CREATE TABLE common.category
(
  id integer NOT NULL,
  parent integer,
  user_id integer,
  name character varying(128),
  CONSTRAINT category_pkey PRIMARY KEY (id),
  CONSTRAINT category_parent_fkey FOREIGN KEY (parent)
      REFERENCES common.category (id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE
)

但是,在导入此示例时,pgAdmin会在第一行抱怨Invalid Input Syntax for Integer: "86"

我在这里缺少什么?我尝试使用制表符分隔文件执行相同的导入,我尝试过转换为Windows和Unix EOL。

3 个答案:

答案 0 :(得分:2)

您的示例具有导入数据顺序的依赖项。有一个外键的父母'引用' id'。在表格中已经有了ID 64,改变了它导入的样本行的顺序:

COPY common.category
    FROM  'd:\temp\importme.txt'
    WITH CSV 

答案 1 :(得分:0)

我遇到了同样的问题。经过2个小时的谷歌,this确实解决了它。我刚刚重新添加了csv文件的第一行,现在一切顺利。

答案 2 :(得分:0)

在Windows资源管理器中创建一个新的文本文件并将文件扩展名更改为.csv之后,我遇到了相同的错误。

我将列从Excel中的现有CSV文件复制到了新的Excel文件中。在阅读@Litty关于它不是用制表符分隔的评论之后,我想知道这是否是我的问题。

果然,在Excel中打开文件会隐藏制表符定界。当我在Notepad ++中打开它时,很明显。在使用pgAdmin作为默认CSV文件导入文件之前,我必须先导出->更改文件类型-> CSV(以逗号分隔)。