VastbaseE100

基于开源技术的HTAP数据库管理系统。性能优异,稳定可靠,提供诸多专属领域特性。

Menu

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_USER | SESSION_USER }
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特权。要更改拥有者,你还必须 是新拥有角色的一个直接或者间接成员,并且该角色必须具有该视图的模式上的 CREATE特权(这些限制强制修改拥有者不能做一些通过删除和重 建视图做不到的事情。不过,一个超级用户怎么都能更改任何视图的所有权。)。

参数说明

  • name

    一个现有视图的名称(可以是模式限定的)。

  • IF EXISTS

    该视图不存在时不要抛出一个错误。这种情况下会发出一个提示。

  • SET/DROP DEFAULT

    这些形式为一个列设置或者移除默认值。对于任何在该视图上的 INSERT或者UPDATE命令,一个视图列的默认值 会在引用该视图的任何规则或触发器之前被替换进来。因此,该视图的默认值将会 优先于来自底层关系的任何默认值。

  • new_owner

    该视图的新拥有者的用户名。

  • new_name

    该视图的新名称。

  • new_schema

    该视图的新模式。

  • SET ( view_option_name [= view_option_value] [, … ] )

  • RESET ( view_option_name [, … ] )

    设置或者重置一个视图选项。当前支持的选项有:

  • check_option (string)

    更改该视图的检查选项。值必须是local 或者cascaded。

  • security_barrier (boolean)

    更改该视图的安全屏障属性。值必须是一个布尔值,如 true或者false。

注意事项

对于历史原因, 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