文档首页 > > 开发指南> SQL参考> SQL语法> ALTER VIEW

ALTER VIEW

分享
更新时间: 2019/06/24 GMT+08:00

功能描述

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

注意事项

  • 用户必须是视图的所有者才可以使用ALTER VIEW。
  • 要改变视图的模式,用户必须要有新模式的CREATE权限。
  • 要改变视图的所有者,用户必须是新所属角色的直接或者间接的成员,并且此角色必须有视图模式的CREATE权限。
  • 管理员用户可以更改任何视图的所属关系。

语法格式

  • 设置视图列的默认值。
    ALTER VIEW [ IF EXISTS ] view_name
        ALTER [ COLUMN ] column_name SET DEFAULT expression;
  • 取消列视图列的默认值。
    ALTER VIEW [ IF EXISTS ] view_name
        ALTER [ COLUMN ] column_name DROP DEFAULT;
  • 修改视图的所有者。
    ALTER VIEW [ IF EXISTS ] view_name 
        OWNER TO new_owner;
  • 重命名视图。
    ALTER VIEW [ IF EXISTS ] view_name 
        RENAME TO new_name;
  • 设置视图的所属模式。
    ALTER VIEW [ IF EXISTS ] view_name 
        SET SCHEMA new_schema;
  • 设置视图的选项。
    ALTER VIEW [ IF EXISTS ] view_name
        SET ( { view_option_name [ = view_option_value ] } [, ... ] );
  • 重置视图的选项。
    ALTER VIEW [ IF EXISTS ] view_name
        RESET ( view_option_name [, ... ] );

参数说明

  • IF EXISTS

    使用这个选项,如果视图不存在时不会产生错误,仅有会有一个提示信息。

  • view_name

    视图名称,可以用模式修饰。

    取值范围:字符串,符合标识符命名规范。

  • column_name

    可选的名字列表,视图的字段名。如果没有给出,字段名取自查询中的字段名。

    取值范围:字符串,符合标识符命名规范。

  • SET/DROP DEFAULT

    设置或删除一个列的缺省值,该参数暂无实际意义。

  • new_owner

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

  • new_name

    视图的新名称。

  • new_schema

    视图的新模式。

  • view_option_name [ = view_option_value ]

    该子句为视图指定一个可选的参数。

    目前view_option_name支持的参数仅有security_barrier,当VIEW试图提供行级安全时,应使用该参数。

    取值范围:boolean类型,TRUE、FALSE。

示例

--创建一个由c_customer_sk小于150的内容组成的视图。
CREATE VIEW tpcds.customer_details_view_v1 AS
    SELECT * FROM tpcds.customer
    WHERE c_customer_sk < 150;

--修改视图名称。
ALTER VIEW tpcds.customer_details_view_v1 RENAME TO customer_details_view_v2;

--修改视图所属schema。
ALTER VIEW tpcds.customer_details_view_v2 SET schema public;

--删除视图。
DROP VIEW public.customer_details_view_v2;

相关链接

CREATE VIEWDROP VIEW

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区