如何改变PostgreSQL中的视图

时间:2010-08-29 04:54:35

标签: sql database postgresql

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

  1. 删除所有依赖对象
  2. 改变观点,
  3. 重新创建所有相关对象。
  4. 我知道postgreSQL开发人员有非常合理的顾虑来防止改变视图。但是你们有没有任何脚本/镜头切换来一次性完成所有这些手动操作?

2 个答案:

答案 0 :(得分:5)

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

  1. 不要改变订单,不是 无论如何,重要的是,只需更改您的查询:

    SELECT a,b FROM view_name;

    SELECT b,FROM view_name;

  2. 何时需要更改数据类型 一列,你必须检查 依赖对象。这些可能 这个新问题有问题 数据类型。得到定义 这个对象并在之后重新创建 变化。 information_schema和 pg_catalog帮助你。

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

答案 1 :(得分:2)

如果我添加一个" drop view xyz;提交;"在"之前创建或替换视图xyz为..."声明,至少在很多情况下我解决了上述阻塞问题。