我在Postgis和Postgresql两方面都很绿色。为了更改SRID,我想更改表中的geom列,但我收到了以下错误:
cannot alter type of a column used by a view or rule
DETAIL: rule _RETURN on view vw_select_location depends on column "geom"
CONTEXT: SQL statement "ALTER TABLE public.ponds_data ALTER COLUMN geom TYPE geometry(PointZM, 4210) USING ST_SetSRID(geom,4210);"
PL/pgSQL function updategeometrysrid(character varying,character varying,character varying,character varying,integer) line 81 at EXECUTE statement
SQL statement "SELECT UpdateGeometrySRID('','',$1,$2,$3)"
PL/pgSQL function updategeometrysrid(character varying,character varying,integer) line 5 at SQL statement. 请帮帮忙。我想把参考坐标系改为弧线1960。
发布于 2015-11-30 06:35:01
仔细阅读错误消息:您不能更改表ponds_data上的列vw_select_location,因为视图vw_select_location依赖于它。
解决方案:首先将视图定义保存在文件中。您可以在pgadmin或psql中找到视图的定义。在psql中使用命令
\d+ vw_select_location然后删除视图,更改列,并使用之前保存的sql语句重新创建视图。
https://stackoverflow.com/questions/33970097
复制相似问题