postgresql更新空间字段,即几何类型字段(geom字段)方法
最近用到postgresql数据库,对于空间字段的更新一直没找到方法。
今天发现了一个更新该字段的方法,现做个分享,也当成自己的备忘录。
1、geom转为EWKT,用ST_AsEWKT()函数:
SELECT ST_AsEWKT(空间字段) FROM 表格名;
例子:
SELECT ST_AsEWKT(geom) FROM test_table WHERE id_0 = 1;
查询结果:
SRID=4490;MULTIPOLYGON(((-124.014814814815 92.2370370370371,-103.481481481482 88,-99.5703703703704 67.7925925925927,-128.577777777778 71.7037037037037,-124.014814814815 92.2370370370371)))
2、用查询出来的EWKT格式更新,用geomfromewkt()函数或ST_WKTToSQL()函数:
(1)geomfromewkt()函数:
UPDATE 表格名 SET 空间字段 = geomfromewkt('查询结果');
例子:
UPDATE test_table SET geom = geomfromewkt(‘SRID=4490;MULTIPOLYGON(((-124.014814814815 92.2370370370371,-103.481481481482 88,-99.5703703703704 67.7925925925927,-128.577777777778 71.7037037037037,-124.014814814815 92.2370370370371)))’) WHERE id_0 = 2;
(2)ST_WKTToSQL()函数:
UPDATE 表格名 SET 空间字段 = ST_WKTToSQL('查询结果');
例子:
UPDATE test_table SET geom = ST_WKTToSQL(‘SRID=4490;MULTIPOLYGON(((-124.014814814815 92.2370370370371,-103.481481481482 88,-99.5703703703704 67.7925925925927,-128.577777777778 71.7037037037037,-124.014814814815 92.2370370370371)))’) WHERE id_0 = 2;
使用此方法,也能完成更新,但会出现一个警告,大概意思就是推荐使用geomfromewkt()函数,但这个方法也能更新:
警告: OGC WKT expected, EWKT provided - use GeomFromEWKT() for this