This documentation is for the unreleased development version of jOOQ. Click on the above version links to get this documentation for a supported version of jOOQ.
MATERIALIZED
Applies to ✅ Open Source Edition ✅ Express Edition ✅ Professional Edition ✅ Enterprise Edition
A VIEW
can be marked as MATERIALIZED
, which means that its data as defined by SELECT * FROM view
is stored on disk for faster retrieval, and synchronised with underlying tables either immediately when those tables are changed (similar to an index), or upon request (similar to a cache that is allowed to be stale).
// 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();
Dialect support
This example using jOOQ:
createMaterializedView("a", "id").as(select(AUTHOR.ID).from(AUTHOR))
Translates to the following dialect specific expressions:
Aurora Postgres, CockroachDB, Oracle, Postgres, Redshift, 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
ASE, Access, Aurora MySQL, ClickHouse, DB2, Derby, DuckDB, Exasol, Firebird, H2, HSQLDB, Hana, Informix, MariaDB, MemSQL, MySQL, SQLDataWarehouse, SQLServer, SQLite, Teradata, Trino, Vertica
/* UNSUPPORTED */
Generated with jOOQ 3.20. Translate your own SQL on our website
Feedback
Do you have any feedback about this page? We'd love to hear it!