【发布时间】:2016-08-29 08:09:53
【问题描述】:
我尝试通过查询在我的表geofield 中插入一个多边形。表geofield 定义如下:
CREATE TABLE geofield(id SERIAL PRIMARY KEY, field GEOMETRY);
insert into geofield(field) values (myfield)
SELECT
'POLYGON(('||cast((select lat from coordinates where id=1)as varchar)||' '||
cast((select lon from coordinates where id=1)as varchar)||','||
cast((select lat from coordinates where id=2)as varchar)||' '||
cast((select lon from coordinates where id=2)as varchar)||','||
cast((select lat from coordinates where id=3)as varchar)||' '||
cast((select lon from coordinates where id=3)as varchar)||','||
cast((select lat from coordinates where id=4)as varchar)||' '||
cast((select lon from coordinates where id=4)as varchar)||','||
cast((select lat from coordinates where id=1)as varchar)||' '||
cast((select lon from coordinates where id=1)as varchar)||'))') AS myfield;
SELECT 单独返回我:
POLYGON((46.744628268759314 6.569952920654968,46.74441692818192 6.570487107359068,46.74426116111054 6.570355867853787,46.74447250168793 6.569821681149689,46.744628268759314 6.569952920654968))
但它不起作用,我也尝试了 ST_GeomFromText 但结果相同。
【问题讨论】:
-
INSERT INTO ... SELECT的适当语法不包括VALUES部分。所以:INSERT INTO geofield (field) SELECT whatever. -
另外,指定您遇到的实际错误或行为绝对是一项要求。 “它不起作用”只是没用的。
-
非常感谢!是价值观锁定了我,我花了很多时间试图弄清楚:/
标签: postgresql postgis