历史版本。 PostgreSQL 9.2 已结束支持。 2017-11-09. 请参阅 当前版本手册.
ALTER VIEW
ALTER VIEW — 更改视图的定义
大纲
ALTER VIEW [ IF EXISTS ]nameALTER [ COLUMN ]column_nameSET DEFAULTexpressionALTER VIEW [ IF EXISTS ]nameALTER [ COLUMN ]column_nameDROP DEFAULT ALTER VIEW [ IF EXISTS ]nameOWNER TOnew_ownerALTER VIEW [ IF EXISTS ]nameRENAME TOnew_nameALTER VIEW [ IF EXISTS ]nameSET SCHEMAnew_schemaALTER VIEW [ IF EXISTS ]nameSET (view_option_name[=view_option_value] [, ... ] ) ALTER VIEW [ IF EXISTS ]nameRESET (view_option_name[, ... ] )
描述
ALTER VIEW更改视图的各种辅助属性。(如果要修改视图的定义查询,请使用
CREATE OR REPLACE VIEW。)
要使用ALTER VIEW,必须拥有该视图。要更改视图的模式,还必须在新模式上拥有CREATE权限。要更改所有者,还必须是新所有者角色的直接或间接成员,并且该角色必须在视图所在模式上拥有CREATE权限。(这些限制确保更改所有者不会执行任何无法通过删除并重新创建视图完成的操作。不过,超级用户无论如何都可以更改任何视图的所有权。)
参数
name现有视图的名称(可以带模式限定)。
IF EXISTS如果视图不存在,则不抛出错误,而是发出一条提示。
SET/DROP DEFAULT这些形式用于设置或移除列的默认值。如果在视图上的
INSERT语句中没有为某一列指定值,那么在应用该视图的ON INSERT规则之前,会先将与该视图列关联的默认值插入该INSERT语句。new_owner视图新拥有者的用户名。
new_name该视图的新名称。
new_schema该视图的新模式。
view_option_name要设置或重置的视图选项的名称。
view_option_value视图选项的新值。
注解
出于历史原因,视图也可以使用 ALTER TABLE;但允许用于视图的 ALTER TABLE 变体,仅限于与上面所示形式等价的那些。
示例
将视图 foo 重命名为
bar:
ALTER VIEW foo RENAME TO bar;
兼容性
ALTER VIEW 是 PostgreSQL
对 SQL 标准的扩展。