0

我正在使用一个名为 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 强制更改?或其他建议?

4

1 回答 1

0

我不熟悉您使用的工具,但我建议使用以下命令检查引用您的表的所有对象(视图和规则)。

SELECT DISTINCT so.name FROM syscomments sc INNER JOIN sysobjects so ON sc.id=so.id WHERE sc.TEXT LIKE '%tablename%'

然后在尝试更改表之前备份这些对象并完全删除它们。

于 2017-09-29T13:44:33.547 回答