【发布时间】:2010-08-29 04:54:35
【问题描述】:
如果视图具有依赖对象,PostgreSQL 不允许更改视图(即添加列、更改列顺序、添加条件等)。这真的很烦人,因为你必须编写一个脚本来:
- 删除所有依赖对象,
- 改变视图,
- 重新创建所有依赖对象。
我了解 postgreSQL 开发人员对于防止更改视图有非常合理的担忧。但是你们有任何脚本/镜头可以在一次运行中完成所有这些手动操作吗?
【问题讨论】:
标签: sql database postgresql
如果视图具有依赖对象,PostgreSQL 不允许更改视图(即添加列、更改列顺序、添加条件等)。这真的很烦人,因为你必须编写一个脚本来:
我了解 postgreSQL 开发人员对于防止更改视图有非常合理的担忧。但是你们有任何脚本/镜头可以在一次运行中完成所有这些手动操作吗?
【问题讨论】:
标签: sql database postgresql
添加新列不是问题,更改数据类型或更改列的顺序,这就是您遇到问题的地方。
不要改变顺序,这不是 无论如何,这很重要,只需更改您的查询:
从视图名称中选择 a、b;
SELECT b, a FROM view_name;
当您必须更改数据类型时 列,你必须检查 依赖对象也是如此。这些可能 这个新的有问题 数据类型。只要得到定义 这个对象并在之后重新创建 变化。 information_schema 和 pg_catalog 帮助你。
【讨论】:
如果我放置一个附加的“drop view xyz; commit;”在“create or replace view xyz as ...”语句之前,至少在很多情况下我解决了上述阻塞问题。
【讨论】: