2024年9月26日: PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不受支持的版本:11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3

ALTER VIEW

ALTER VIEW — 更改视图的定义

语法

ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression
ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name DROP DEFAULT
ALTER VIEW [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER VIEW [ IF EXISTS ] name RENAME [ COLUMN ] column_name TO new_column_name
ALTER VIEW [ IF EXISTS ] name RENAME TO new_name
ALTER VIEW [ IF EXISTS ] name SET SCHEMA new_schema
ALTER VIEW [ IF EXISTS ] name SET ( view_option_name [= view_option_value] [, ... ] )
ALTER VIEW [ IF EXISTS ] name RESET ( view_option_name [, ... ] )

描述

ALTER VIEW 更改视图的各种辅助属性。(如果要修改视图的定义查询,请使用 CREATE OR REPLACE VIEW。)

您必须拥有该视图才能使用 ALTER VIEW。要更改视图的模式,您还必须对新模式具有 CREATE 权限。要更改所有者,您必须能够将 SET ROLE 设置为新的拥有角色,并且该角色必须对视图的模式具有 CREATE 权限。(这些限制强制执行更改所有者不会执行您无法通过删除和重新创建视图来执行的任何操作。但是,超级用户可以随时更改任何视图的所有权。)

参数

name

现有视图的名称(可选模式限定)。

column_name

现有列的名称。

new_column_name

现有列的新名称。

IF EXISTS

如果视图不存在,则不抛出错误。在这种情况下会发出通知。

SET/DROP DEFAULT

这些表单设置或删除列的默认值。视图列的默认值将替换为任何目标为视图的 INSERTUPDATE 命令,然后再应用视图的任何规则或触发器。因此,视图的默认值将优先于来自基础关系的任何默认值。

new_owner

视图的新所有者的用户名。

new_name

视图的新名称。

new_schema

视图的新模式。

SET ( view_option_name [= view_option_value] [, ... ] )
RESET ( view_option_name [, ... ] )

设置或重置视图选项。当前支持的选项为

check_option (枚举)

更改视图的检查选项。该值必须为 localcascaded

security_barrier (布尔型)

更改视图的安全屏障属性。该值必须为布尔值,例如 truefalse

security_invoker (布尔型)

更改视图的安全调用者属性。该值必须为布尔值,例如 truefalse

备注

出于历史原因,ALTER TABLE 也可用于视图;但允许与视图一起使用的 ALTER TABLE 的唯一变体等效于上面显示的变体。

示例

将视图 foo 重命名为 bar

ALTER VIEW foo RENAME TO bar;

将默认列值附加到可更新视图

CREATE TABLE base_table (id int, ts timestamptz);
CREATE VIEW a_view AS SELECT * FROM base_table;
ALTER VIEW a_view ALTER COLUMN ts SET DEFAULT now();
INSERT INTO base_table(id) VALUES(1);  -- ts will receive a NULL
INSERT INTO a_view(id) VALUES(2);  -- ts will receive the current time

兼容性

ALTER VIEWPostgreSQL 对 SQL 标准的扩展。

另请参阅

CREATE VIEWDROP VIEW

提交更正

如果您在文档中看到任何不正确的内容、与您对特定功能的体验不符的内容或需要进一步澄清的内容,请使用 此表单 报告文档问题。