ALTER MATERIALIZED VIEW

ALTER MATERIALIZED VIEW更改现有物化视图的多个辅助属性。

简介

要使用ALTER MATERIALIZED VIEW,你必须拥有该物化视图。要更改一个物化视图的模式,你还必须拥有新模式上的CREATE特权。要更改拥有者,你还必须是新拥有角色的一个直接或者间接成员,并且该角色必须拥有该物化视图所在模式上的CREATE特权(这些限制强制修改拥有者不能做一些通过删除和重建该物化视图做不到的事情,不过,一个超级用户怎么都能更改任何视图的所有权)。

可用于ALTER MATERIALIZED VIEW的语句形式和动作是 ALTER TABLE的一个子集,并且在用于物化视图时具有相同的含义。详见 ALTER TABLE 的描述。

语法

    ALTER MATERIALIZED VIEW [ IF EXISTS ] name
        action [, ... ]
    ALTER MATERIALIZED VIEW name
        DEPENDS ON EXTENSION extension_name
    ALTER MATERIALIZED VIEW [ IF EXISTS ] name
        RENAME [ COLUMN ] column_name TO new_column_name
    ALTER MATERIALIZED VIEW [ IF EXISTS ] name
        RENAME TO new_name
    ALTER MATERIALIZED VIEW [ IF EXISTS ] name
        SET SCHEMA new_schema
    ALTER MATERIALIZED VIEW ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]
        SET TABLESPACE new_tablespace [ NOWAIT ]

    其中 action是下列之一:

        ALTER [ COLUMN ] column_name SET STATISTICS integer
        ALTER [ COLUMN ] column_name SET ( attribute_option = value [, ... ] )
        ALTER [ COLUMN ] column_name RESET ( attribute_option [, ... ] )
        ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
        CLUSTER ON index_name
        SET WITHOUT CLUSTER
        SET ( storage_parameter [= value] [, ... ] )
        RESET ( storage_parameter [, ... ] )
        OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

参数

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

column_name一个新的或者现有的列的名称。

extension_name该物化视图所依赖的扩展的名称(如果指定了 NO ,则不再依赖)。 删除扩展时,会自动删除标记为依赖于扩展的实例化视图。

new_column_name一个现有列的新名称。

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

new_name该物化视图的新名称。

new_schema该物化视图的新模式。

示例

把物化视图foo重命名为 bar

    ALTER MATERIALIZED VIEW foo RENAME TO bar;