我有一个表格,其中一列是几何列the_geom,用于带有SRID的多边形.我在同一个表中添加了一个新列,其几何数据与the_geom完全相同.

这个新列的名称为the_geom4258,因为我想将其SRID设置为4258.将几何体的SRID更改为其他坐标系的步骤是什么?应用以下查询是否足够:

UPDATE table SET the_geom4258=ST_SetSRID(the_geom4258,4258);

推荐答案

你应该使用ST_Transform函数.还可以使用函数AddGeometryColumn创建新列,以确保所有必要的约束也已创建:

SELECT AddGeometryColumn('table','the_geom4258',4258, 'POLYGON', 2);

UPDATE table SET the_geom4258 = ST_Transform(the_geom,4258);

ST_SetSRID只设置投影标识符,但实际上不会变换几何体.

Postgresql相关问答推荐

Postgs SQL用于比较两个表之间的数据并填充到目标中

如何高效地将行聚合到数组中,同时保留`NULL`来指示丢失的数据?

如何在生成的列的表达式中使用TIMESTAMP WITH时区列?

为什么我的唯一索引在 Postgresql 中不起作用?

使用Helm设置PostgreSQL配置

使用来自 docker 图像的 postgres 设置 Keycloak 21

需要用 jack/pgx 更新 golang 中复合类型的 PSQL 行

使用 GDB 调试器调试 AGE 代码的过程

查找列中的数据是否满足sql中的数据类型条件

如何在 Sequelize ORM 中插入 PostGIS GEOMETRY 点?

OpenShift:如何从我的 PC 连接到 postgresql

表或列名不能以数字开头?

SQLAlchemy 中使用什么类型存储字节字符串?

返回 NULL 的空数组的 array_length()

Postgres 类似于 SQL Server 中的 CROSS APPLY

使用 PostGIS 查找给定点的 n 个最近邻?

Postgres Npgsql 连接池

Postgresql varchar 是否使用 unicode 字符长度或 ASCII 字符长度计算?

PGAdmin 编辑数据

Postgres 中有多少表分区太多了?