ALTER VIEW
ALTER VIEW 语句支持更改现有视图的各种属性,并且 Aurora DSQL 支持此命令的所有 PostgreSQL 语法。
支持的语法
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-
现有列的名称,或现有列的新名称。
IF EXISTS-
如果视图不存在,不引发错误。在这种情况下,将发出通知。
SET/DROP DEFAULT-
这些表单为列设置或移除默认值。视图列的默认值会替换为任何以视图为目标的
INSERT或UPDATE命令。 new_owner-
视图的新所有者的用户名。
new_name-
视图的新名称。
new_schema-
视图的新架构。
SET ( view_option_name [= view_option_value] [, ... ] )-
设置视图选项。以下是支持的选项:
-
check_option (enum):更改视图的检查选项。值必须为local或cascaded。 -
security_barrier (boolean):更改视图的 security-barrier 属性。 -
security_invoker (boolean):更改视图的 security-invoker 属性。
-
RESET ( view_option_name [, ... ] )-
将视图选项重置为其默认值。
示例
将视图 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 VIEW 是 Aurora DSQL 支持的 SQL 标准的 PostgreSQL 扩展。