如果PostgreSQL具有依赖对象,则不允许更改视图(即添加列,更改列顺序,添加标准等)。这真的很烦人,因为你必须写一个脚本:
我知道postgreSQL开发人员有非常合理的顾虑来防止改变视图。但是你们有没有任何脚本/镜头切换来一次性完成所有这些手动操作?
答案 0 :(得分:5)
添加新列不是问题,更改数据类型或更改列的顺序,这是您遇到问题的地方。
不要改变订单,不是 无论如何,重要的是,只需更改您的查询:
SELECT a,b FROM view_name;
SELECT b,FROM view_name;
何时需要更改数据类型 一列,你必须检查 依赖对象。这些可能 这个新问题有问题 数据类型。得到定义 这个对象并在之后重新创建 变化。 information_schema和 pg_catalog帮助你。
答案 1 :(得分:2)
如果我添加一个" drop view xyz;提交;"在"之前创建或替换视图xyz为..."声明,至少在很多情况下我解决了上述阻塞问题。