错误:上一个预期列后的额外数据

时间:2016-04-15 04:10:28

标签: sql postgresql import

所以我用这些列创建了这个表:

CREATE TABLE public.gps_0
(
 nmea_sentence text,
 utc_time integer,
 latitude double precision,
 lat_designator character varying(255),
 longitude double precision,
 long_designator character varying(255),
 fix_quality integer,
 num_satellites integer,
 hdop integer,
 altitude double precision,
 alt_units character varying(255),
 geoidal_separation double precision,
 gs_units character varying(255),
 blank integer,
 checksum integer
     )

这是我导入的.csv文件数据: enter image description here

这是我在导入文件之前所做的事情:

enter image description here

然后我点击IMPORT并收到此错误消息:

enter image description here

这对我来说毫无意义,因为我的代码有15列,我的数据有15列。我不知道为什么这个错误,任何帮助都会做。谢谢!

1 个答案:

答案 0 :(得分:3)

这很可能与文件编码有关。

PostgreSQL的COPY(这个导入工具可能使用的)假定的默认编码是UTF-8,而你的文件可能不是。如果它是在Windows上创建/编辑/保存的,则可能需要指定不同的编码。

您需要尝试确定文件的编码,但遗憾的是,这并非总是非常简单。有一些工具可以提供帮助,但不能保证能为您提供正确答案。

我在Python库cchardet上取得了成功 - 当然这需要在Python中进行一些简单的编码。如果你知道一点Python,他们的GitHub页面就有一个很好的例子:https://github.com/PyYoshi/cChardet

或者,只需搜索一些Windows编码检测工具。

确定文件的编码后,您可以在导入工具或COPY命令中指定它。该工具似乎有一个下拉,这可能会使它更容易;但是,您可以在此处引用PostgreSQL支持的内容:https://www.postgresql.org/docs/current/static/multibyte.html

我已成功使用此方法 - 希望它也能解决您的问题。