使用pgAdmin 4导入CSV文件PostgreSQL
我正试图将CSV文件导入PostgreSQL,但出现此错误使用pgAdmin 4导入CSV文件PostgreSQL,postgresql,csv,import,pgadmin-4,csv-import,Postgresql,Csv,Import,Pgadmin 4,Csv Import,我正试图将CSV文件导入PostgreSQL,但出现此错误 ERROR: invalid input syntax for integer: "id;date;time;latitude;longitude" CONTEXT: COPY test, line 1, column id: "id;date;time;latitude;longitude" 我的csv文件很简单 id;date;time;latitude;longitude 12980;2015-10-22;14:13:44.
ERROR: invalid input syntax for integer: "id;date;time;latitude;longitude"
CONTEXT: COPY test, line 1, column id: "id;date;time;latitude;longitude"
我的csv文件很简单
id;date;time;latitude;longitude
12980;2015-10-22;14:13:44.1430000;59,86411203;17,64274849
该表是使用以下代码创建的:
CREATE TABLE kordinater.test
(
id integer NOT NULL,
date date,
"time" time without time zone,
latitude real,
longitude real
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE kordinater.test
OWNER to postgres;
你应该试试这个,一定有用 复制kordinater.test(id、日期、时间、纬度、经度) 从'C:\tmp\yourfile.csv'分隔符','csv头 您的csv标题必须用逗号分隔,不能用分号分隔,或者尝试将id列类型更改为bigint
我认为解决这个问题的最快方法是创建一个中间临时表,这样您就可以导入数据并随意转换坐标 创建一个类似的,其中有问题的列为
text
:
CREATE TEMPORARY TABLE tmp
(
id integer,
date date,
time time without time zone,
latitude text,
longitude text
);
并使用COPY
导入文件:
COPY tmp FROM '/path/to/file.csv' DELIMITER ';' CSV HEADER;
将数据放入tmp
表格后,可以使用以下命令转换坐标并将其插入test
表格:
INSERT INTO test (id, date, time, latitude, longitude)
SELECT id, date, time, replace(latitude,',','.')::numeric, replace(longitude,',','.')::numeric from tmp;
还有一件事:
由于您使用的是地理坐标,我真诚地建议您查看一下。当您开始使用地理空间数据进行第一次计算时,安装起来非常简单,并且使您的生活更加轻松。您可以使用
导入/导出
选项执行此任务
嗨,你能帮我写这篇相关的文章吗?