【发布时间】:2015-10-22 20:37:42
【问题描述】:
我在 Postgresql 9.4 物化视图中的列名上弄错了。
我看了文档,语法是:
ALTER MATERIALIZED VIEW my_view_name
RENAME COLUMN old_name
TO new_name;
效果很好。
然后我在非物化视图中出现了同样的错字。我复制粘贴了请求,忘记删除关键字 MATERIALIZED 并且......它成功了!
奇怪的是,如果我尝试:
ALTER VIEW my_view_name
RENAME COLUMN old_name
TO new_name;
它不起作用,我收到语法错误!
换句话说:我似乎只能通过使用物化视图的语法来更改普通视图的列名。
这是错误还是功能?
重现步骤:
1) 创建一个简单的表
CREATE TABLE films (
code char(5) CONSTRAINT firstkey PRIMARY KEY,
title varchar(40) NOT NULL
);
2) 将视图创建为简单的选择:
CREATE VIEW view_films AS SELECT * FROM films;
3) 尝试重命名列:
ALTER VIEW view_films RENAME COLUMN title TO new_title;
错误:“COLUMN”处或附近的语法错误
4) 尝试相同,但使用关键字MATERIALIZED:
ALTER MATERIALIZED VIEW view_films RENAME COLUMN title TO new_title;
更改表
【问题讨论】:
标签: postgresql views materialized-views