Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
CREATE MA...IZED VIEW(7)  PostgreSQL 18.6 Documentation CREATE MA...IZED VIEW(7)

NAME
     CREATE_MATERIALIZED_VIEW - define a new materialized view

SYNOPSIS
     CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name
	 [ (column_name [, ...] ) ]
	 [ USING method ]
	 [ WITH ( storage_parameter [= value] [, ... ] ) ]
	 [ TABLESPACE tablespace_name ]
	 AS query
	 [ WITH [ NO ] DATA ]

DESCRIPTION
     CREATE  MATERIALIZED VIEW defines a materialized view of a query. The query
     is executed and used to populate the view at the time the command is issued
     (unless WITH NO DATA is used) and may be refreshed later using REFRESH  MA-
     TERIALIZED VIEW.

     CREATE MATERIALIZED VIEW is similar to CREATE TABLE AS, except that it also
     remembers	the  query  used  to  initialize the view, so that it can be re-
     freshed later upon demand. A materialized view has many of the same proper-
     ties as a table, but there is no support for temporary materialized views.

     CREATE MATERIALIZED VIEW requires CREATE privilege on the schema  used  for
     the materialized view.

PARAMETERS
     IF NOT EXISTS
	 Do not throw an error if a materialized view with the same name already
	 exists.  A notice is issued in this case. Note that there is no guaran-
	 tee that the existing materialized view is anything like the  one  that
	 would have been created.

     table_name
	 The  name  (optionally schema-qualified) of the materialized view to be
	 created. The name must be distinct from the name of any other	relation
	 (table,  sequence, index, view, materialized view, or foreign table) in
	 the same schema.

     column_name
	 The name of a column in the new materialized view. If column names  are
	 not provided, they are taken from the output column names of the query.

     USING method
	 This  optional clause specifies the table access method to use to store
	 the contents for the new materialized view; the method needs be an  ac-
	 cess method of type TABLE. See Chapter 62 for more information. If this
	 option  is not specified, the default table access method is chosen for
	 the new materialized view. See default_table_access_method for more in-
	 formation.

     WITH ( storage_parameter [= value] [, ... ] )
	 This clause specifies optional storage parameters for the new material-
	 ized view; see Storage Parameters in the CREATE TABLE (CREATE_TABLE(7))
	 documentation for more information. All parameters supported for CREATE
	 TABLE are also supported for CREATE MATERIALIZED VIEW. See CREATE TABLE
	 (CREATE_TABLE(7)) for more information.

     TABLESPACE tablespace_name
	 The tablespace_name is the name of the tablespace in which the new  ma-
	 terialized  view is to be created. If not specified, default_tablespace
	 is consulted.

     query
	 A SELECT, TABLE, or VALUES command. This query will run within a  secu-
	 rity-restricted operation; in particular, calls to functions that them-
	 selves create temporary tables will fail. Also, while the query is run-
	 ning, the search_path is temporarily changed to pg_catalog, pg_temp.

     WITH [ NO ] DATA
	 This  clause  specifies  whether or not the materialized view should be
	 populated at creation time. If  not,  the  materialized  view	will  be
	 flagged as unscannable and cannot be queried until REFRESH MATERIALIZED
	 VIEW is used.

COMPATIBILITY
     CREATE MATERIALIZED VIEW is a PostgreSQL extension.

SEE ALSO
     ALTER MATERIALIZED VIEW (ALTER_MATERIALIZED_VIEW(7)), CREATE TABLE AS (CRE-
     ATE_TABLE_AS(7)),	CREATE	VIEW  (CREATE_VIEW(7)),  DROP  MATERIALIZED VIEW
     (DROP_MATERIALIZED_VIEW(7)), REFRESH MATERIALIZED	VIEW  (REFRESH_MATERIAL-
     IZED_VIEW(7))

PostgreSQL 18.6 		      2026		CREATE MA...IZED VIEW(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CREATE_MATERIALIZED_VIEW&sektion=7&manpath=FreeBSD+Ports+15.1.quarterly>

home | help