Skip to main content
Stored query results in materialized view are not automatically updated to reflect the latest state of the table(s) they query. The REFRESH statement updates the stored query results of a materialized view.
CockroachDB does not support materialized views that are refreshed on transaction commit.

Required privileges

The user must be the owner of the materialized view or have admin privileges.

Synopsis

refresh_materialized_views syntax diagram

Parameters

Examples

The following example uses the sample bank database, populated with some workload values. Suppose that you create a materialized view on the bank table:
Now suppose that you update the balance values of the bank table:
The changes can be seen in the table with a simple SELECT statement against the table:
Recall that materialized views do not automatically update their stored results. Selecting from overdrawn_accounts returns stored results, which are outdated:
To update the materialized view’s results, use a REFRESH statement:

Refresh a materialized view with historical data using AS OF SYSTEM TIME

You can refresh a materialized view using historical data with the AS OF SYSTEM TIME clause. This is useful for reducing contention by performing a follower read when refreshing the view.
Historical data is available only within the garbage collection window.
Refresh a materialized view using follower_read_timestamp() to use the most recent data that is available for follower reads:
You can also specify an explicit timestamp:

See also