如何改变PostgreSQL中的视图

mev*_*ven 14 sql database postgresql

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

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

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

Fra*_*ens 5

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

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

    SELECT a,b FROM view_name;

    SELECT b,FROM view_name;

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

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

  • 从8.4发行说明:允许CREATE OR REPLACE VIEW将列添加到视图的末尾(Robert Haas) (4认同)