我正在使用一种名为giswater的工具来模拟我们的下水道和风暴网络。这些工具通过gui中的一些简单输入构建数据库,其中一个是SRID。几何列都是xy,我想让它们都知道ZM。当我运行alter table命令来更新几何体时,我收到错误“无法更改参与视图或规则的列” 无论如何强制进行此更改并忽略错误?我尝试更改视图以不引用列,我尝试添加一个新的几何列,以便在我进行更改时暂时切换视图。显然我不能在视图中删除列或将其更改为另一列。我还尝试将模式编写到SQL然后编辑了线串的sql行并指向linestringzm和pointzm并使用psql运行文件来更新模式;所有我得到的是使用“psql -U postgres -d utility -1 -f \ i Z:...... \ xyz_test.sql”拒绝访问 还试过pg_restore。 无论如何只使用pg_admin4强制更改?或其他建议?
答案 0 :(得分:0)
我不熟悉您正在使用的工具,但我建议使用以下命令检查引用您的表的所有对象(视图和规则)。
SELECT DISTINCT so.name 来自syscomments sc INNER JOIN sysobjects so sc.id = so.id. 在哪里sc.TEXT LIKE'%tablename%'
然后在尝试更改表格之前备份这些对象并完全删除它们。