如何在postgres中执行批量插入

时间:2016-12-24 13:57:46

标签: sql postgresql

我在名为myFile.txt的文本文件中包含以下表单的数据:

id_1     POLYGON (1.137821,-129.141488|1.137874,-129.141493|1.137970,-129.141403|1.137994,-129.141349|1.138021,-129.141238)
id_2     LINESTRING (7.294799,-122.935414|7.294679,-122.935129)
id_3     POLYGON (1.139228,-129.143349|1.139228,-129.143401|1.139150,-129.143461|1.138930,-129.143451|1.138734,-129.143445|1.138630,-129.143390|1.138007,-129.142777|1.137906,-129.142629|1.137761,-129.142286|1.137796,-129.142214|1.137844,-129.142142|1.137839,-129.142067)
id_4     POINT (1.138007,-129.142777)  

此处,POLYGONLINESTRINGPOINT指定纬度和经度的地点位置。我想将这些数据批量插入下表:

create table idLatLongTable
(id character varying(250), geo_column geography);

我的问题是:如何在batch insert表格中idLatLongTable这些数据?

我知道如何进行一次一行插入。但是,我无法理解如何在此表上执行批量插入

1 个答案:

答案 0 :(得分:1)

您的数据几乎与Well Known Text相似,但事实并非如此。这是你自己创造的东西吗?如果是这样,您应该更改程序以WKT格式生成它。例如根据WKT,你的观点应该看起来像

POINT (1.138007 -129.142777) 

但它是

POINT (1.138007,-129.142777) 

类似地,线串的正确表示将是

LINESTRING (7.294799 -122.935414, 7.294679 -122.935129)

但是在您的数据中,,应该是空格,而|应该是,,所以首先要做的是转换PostGIS可接受的数据或任何其他空间感知数据库。

当你在这里时,请从id中删除id_部分。将id_1保存为varchar是没有意义的,在整数字段中应保存的是1

相关问题