可用版本: Dev (3.21) | 最新 (3.20) | 3.19

MATERIALIZED

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

VIEW 可以标记为 MATERIALIZED,这意味着它的数据(由 SELECT * FROM view 定义)存储在磁盘上以实现更快的检索,并且与底层表同步,要么在这些表发生更改时立即同步(类似于索引),要么根据请求同步(类似于允许过期的缓存)。

// Create a new view
create.createMaterializedView("authors", "author_id", "first_name", "last_name")
      .as(select(AUTHOR.ID, AUTHOR.FIRST_NAME, AUTHOR.LAST_NAME)
          .from(AUTHOR))
      .execute();

方言支持

此示例使用 jOOQ

createMaterializedView("a", "id").as(select(AUTHOR.ID).from(AUTHOR))

翻译成以下特定方言的表达式

Aurora Postgres, CockroachDB, Oracle, Postgres, Snowflake, Sybase, YugabyteDB

CREATE MATERIALIZED VIEW a(id)
AS
SELECT AUTHOR.ID
FROM AUTHOR

BigQuery

CREATE MATERIALIZED VIEW a
AS
SELECT t.id
FROM (
  SELECT AUTHOR.ID id
  FROM AUTHOR
) t

Databricks, Redshift

CREATE MATERIALIZED VIEW a
AS
SELECT t.id
FROM (
  SELECT AUTHOR.ID
  FROM AUTHOR
) t (id)

ASE, Access, Aurora MySQL, ClickHouse, DB2, Derby, DuckDB, Exasol, Firebird, H2, HSQLDB, Hana, Informix, MariaDB, MemSQL, MySQL, SQLDataWarehouse, SQLServer, SQLite, Teradata, Trino, Vertica

/* UNSUPPORTED */
使用 jOOQ 3.21 生成。早期 jOOQ 版本的支持可能有所不同。 在我们的网站上翻译您自己的 SQL

反馈

您对此页面有任何反馈吗? 我们很乐意倾听!

The jOOQ Logo