【发布时间】:2018-03-11 09:12:07
【问题描述】:
我正在使用一个名为 giswater 的工具来模拟我们的下水道和风暴网络。这些工具从 gui 中的几个简单输入构建数据库,其中一个是 SRID。几何列都是 xy,我想让它们都知道 ZM。当我运行 alter table 命令更新几何时,出现错误“无法更改参与视图或规则的列” 无论如何要强制进行此更改并忽略错误?我尝试将视图更改为不引用该列,并尝试添加一个新的几何列以在进行更改时临时切换视图。显然我不能在视图中删除一列或将其更改为另一列。我还尝试将架构写入 SQL,然后编辑 linestring 的 sql 行并指向 linestringzm 和 pointzm 并使用 psql 运行文件以更新架构;我得到的只是使用“psql -U postgres -d utility -1 -f \i Z:......\xyz_test.sql”拒绝访问 还尝试了 pg_restore。 无论如何只是使用 pg_admin4 强制更改?或其他建议?
【问题讨论】:
-
你可以通过直接更新
pg_attribute来强制更改,但我不建议这样做。为什么不简单地删除视图并使用新的表结构重新创建它? -
这是 1 个示例,有很多视图不确定有多少引用“the_geom”弧。 arc 是表示管道的所有线串几何图形,每种类型的管道都有几个视图,总共有几个视图。节点的方式相同,两者都需要更新才能制作完整的 3D 模型。我确实找到了另一种工作,有点。我找到了 gui 用来创建数据库的 sql 脚本。我进入了制作表格并将几何列更改为 zm 的那些。如何直接更新 pg_attribute,为什么不推荐?
标签: postgresql postgis alter-table alter-column