Answers:
有一个单行功能可以为您完成此任务。只需使用以下SQL查询:
select UpdateGeometrySRID('Schema Name', 'mytable', 'the_geom', newSRID) ;
但是,如果您像我一样,可能会对低级微型步骤感兴趣。从逻辑上讲,以上功能等效于以下四个步骤:
在geometry_columns表中,将SRID更新为所需值。
使用以下SQL语句将约束放置在表上
ALTER TABLE mytable DROP CONSTRAINT enforce_srid_the_geom;
使用以下SQL语句更新几何的SRID
UPDATE mytable SET the_geom = ST_SetSRID(the_geom, newSRID);
通过使用以下SQL语句重新添加约束
ALTER TABLE mytable
ADD CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = (newSRID));
在PostGIS 2.x中,几何列通常使用typmods geometry(Point, 1234)
。对于这些,您可以使用ALTER TABLE一步直接修改几何列类型。
例如,要将geom
in 的SRID设置mytable
为WGS84,请使用ST_SetSRID:
ALTER TABLE mytable
ALTER COLUMN geom
TYPE geometry(Point, 4326)
USING ST_SetSRID(geom, 4326);
请注意,这只会更改SRID,而不会转换坐标数据。
UpdateGeometrySRID
。