ALTER MATERIALIZED VIEW

更改一个物化视图的定义。

概要

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 ]

where <action> is one of:

    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 TABLESPACE <new_tablespace>
    SET ( <storage_paramete>r = <value> [, ... ] )
    RESET ( <storage_parameter> [, ... ] )
    OWNER TO { <new_owner> | CURRENT_USER | SESSION_USER }

描述

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

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

DEPENDS ON EXTENSION 形式把该物化视图标记为依赖于一个扩展,这样该扩展被删除时会自动地删除掉这个物化视图。

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

参数

  • name
    • 一个现有物化视图的名称(可以是模式限定的)。
  • column_name
    • 一个新的或者现有的列的名称。
  • extension_name
    • 该物化视图所依赖的扩展的名称。
  • new_column_name
    • 一个现有列的新名称。
  • new_owner
    • 该物化视图的新拥有者的用户名。
  • new_name
    • 该物化视图的新名称。
  • new_schema
    • 该物化视图的新模式。

示例

把物化视图foo重命名为 bar:

ALTER MATERIALIZED VIEW foo RENAME TO bar;

兼容性

ALTER MATERIALIZED VIEW是 SQL标准的 YMatrix 扩展功能。

另见

CREATE MATERIALIZED VIEW, DROP MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW