CREATE MATERIALIZED VIEW

    CREATE MATERIALIZED VIEW类似于CREATE TABLE AS,不过它会记住被用来初始化该视图的查询, 因此它可以在后续中进行数据刷新。一个物化视图有很多和表相同的属性,但是不支持临时物化视图。

    • 全量物化视图不可以在临时表或全局临时表上创建。
    • 全量物化视图不支持nodegroup。
    • 不支持对全量物化视图进行IUD操作。
    • 全量物化视图创建后,当基表数据发生变化时,需要使用刷新(REFRESH)命令保持物化视图与基表同步。
    • mv_name

      要创建的物化视图的名称(可以被模式限定)。

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

    • 新物化视图中的一个列名。物化视图支持指定列,指定列需要和后面的查询语句结果的列数量保持一致;如果没有提供列名,会从查询的输出列名中获取列名。

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

    • WITH ( storage_parameter [= value] [, … ] )

      这个子句为表或索引指定一个可选的存储参数。详见。

    • 指定新建物化视图所属表空间。如果没有声明,将使用默认表空间。

    • AS query

      一个SELECT、TABLE 或者VALUES命令。这个查询将在一个安全受限的操作中运行。

    1. openGauss=# CREATE TABLE my_table (c1 int, c2 int);
    2. openGauss=# CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM my_table;
    3. openGauss=# INSERT INTO my_table VALUES(1,1),(2,2);
    4. openGauss=# REFRESH MATERIALIZED VIEW my_mv;

    ALTER MATERIALIZED VIEW, ,CREATE TABLE,,REFRESH INCREMENTAL MATERIALIZED VIEW