繁体   English   中英

如何改变PostgreSQL中的视图

[英]How to ALTER a view in PostgreSQL

如果PostgreSQL具有依赖对象,则不允许更改视图(即添加列,更改列顺序,添加标准等)。 这真的很烦人,因为你必须写一个脚本:

  1. 删除所有依赖对象,
  2. 改变观点,
  3. 再次重新创建所有依赖对象。

我知道postgreSQL开发人员有非常合理的顾虑来防止改变视图。 但是你们有没有任何脚本/镜头切换来一次性完成所有这些手动的东西?

添加新列不是问题,更改数据类型或更改列的顺序,这是您遇到问题的地方。

  1. 不要改变顺序,无论如何都不重要,只需更改您的查询:

    SELECT a,b FROM view_name;

    SELECT b,FROM view_name;

  2. 必须更改列的数据类型时,还必须检查depend对象。 这些新数据类型可能存在问题。 只需获取此对象的定义并在更改后重新创建。 information_schema和pg_catalog帮助您解决问题。

  3. 在单个事务中进行所有更改。

如果我放置一个addtional“drop view xyz; commit;” 在“创建或替换视图xyz为...”语句之前,至少在很多情况下我解决了上面描述的阻塞问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM