非常新手PostgreSQL用户尝试将CSV文件导入Postgres数据库中的现有表。我在Windows 8上使用PgAdmin III。
以下是查询:
COPY "Mobility Survey2" FROM 'C:\\Users\\Public\\2011-2.csv'
WITH CSV HEADER DELIMITER ',';
以下是错误消息:
ERROR: la sintaxis de entrada no es válida para integer: «1 25099 1020624 4 4 8 2 903 1 2 4 4 1 1 3 0 2 2 16.6»
CONTEXT: COPY Mobility Survey2, línea 2, columna ORDEN: «1 25099 1020624 4 4 8 2 903 1 2 4 4 1 1 3 0 2 2 16.6»
(对不起西班牙语 - 翻译为“条目语法对整数无效”)
我已经尝试过查看其他一些问题,包括这个问题(Importing CSV file into PostgreSQL),但我找不到解决问题的方法。很可能只是因为我对Postgres和SQL一般都不熟悉,但我在查询中遗漏了什么?我认为它与标题有关,但我不知道如何解决它。
答案 0 :(得分:1)
传递给COPY
的分隔符是','
但是查看有缺陷的行,其中没有逗号。看起来分隔符是tab
字符。
尝试改为:
COPY "Mobility Survey2" FROM 'C:\\Users\\Public\\2011-2.csv'
WITH CSV HEADER DELIMITER E'\t';
对于HEADER
关键字,如果数据文件的第一行由列名组成,则需要它,否则应将其删除。