如何Postgres的执行批量插入

如何Postgres的执行批量插入

问题描述:

我有以下形式的数据在一个名为myfile.txt的文本文件:如何Postgres的执行批量插入

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

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

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

POINT (1.138007 -129.142777) 

但它

POINT (1.138007,-129.142777) 

同样,对于一个线串的正确表示是

LINESTRING (7.294799 -122.935414, 7.294679 -122.935129) 

但在你的数据,你有,它应该是空间和|它应该是,所以首先要做的是转换你的数据t帽子是PostGIS或任何其他空间感知数据库可以接受的。

当你在它的时候,请从id中去掉id_部分。将id_1保存为varchar毫无意义,应该保存的是1整数字段