<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >ALTER MATERIALIZED VIEW</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.6.21 Documentation" HREF="index.html"><LINK REL="UP" TITLE="SQL Commands" HREF="sql-commands.html"><LINK REL="PREVIOUS" TITLE="ALTER LARGE OBJECT" HREF="sql-alterlargeobject.html"><LINK REL="NEXT" TITLE="ALTER OPERATOR" HREF="sql-alteroperator.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2021-02-27T18:26:08"></HEAD ><BODY CLASS="REFENTRY" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="4" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.6.21 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="ALTER LARGE OBJECT" HREF="sql-alterlargeobject.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="sql-commands.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="ALTER OPERATOR" HREF="sql-alteroperator.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="SQL-ALTERMATERIALIZEDVIEW" ></A >ALTER MATERIALIZED VIEW</H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN74739" ></A ><H2 >Name</H2 >ALTER MATERIALIZED VIEW -- change the definition of a materialized view</DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN74742" ></A ><H2 >Synopsis</H2 ><PRE CLASS="SYNOPSIS" >ALTER MATERIALIZED VIEW [ IF EXISTS ] <TT CLASS="REPLACEABLE" ><I >name</I ></TT > <TT CLASS="REPLACEABLE" ><I >action</I ></TT > [, ... ] ALTER MATERIALIZED VIEW <TT CLASS="REPLACEABLE" ><I >name</I ></TT > DEPENDS ON EXTENSION <TT CLASS="REPLACEABLE" ><I >extension_name</I ></TT > ALTER MATERIALIZED VIEW [ IF EXISTS ] <TT CLASS="REPLACEABLE" ><I >name</I ></TT > RENAME [ COLUMN ] <TT CLASS="REPLACEABLE" ><I >column_name</I ></TT > TO <TT CLASS="REPLACEABLE" ><I >new_column_name</I ></TT > ALTER MATERIALIZED VIEW [ IF EXISTS ] <TT CLASS="REPLACEABLE" ><I >name</I ></TT > RENAME TO <TT CLASS="REPLACEABLE" ><I >new_name</I ></TT > ALTER MATERIALIZED VIEW [ IF EXISTS ] <TT CLASS="REPLACEABLE" ><I >name</I ></TT > SET SCHEMA <TT CLASS="REPLACEABLE" ><I >new_schema</I ></TT > ALTER MATERIALIZED VIEW ALL IN TABLESPACE <TT CLASS="REPLACEABLE" ><I >name</I ></TT > [ OWNED BY <TT CLASS="REPLACEABLE" ><I >role_name</I ></TT > [, ... ] ] SET TABLESPACE <TT CLASS="REPLACEABLE" ><I >new_tablespace</I ></TT > [ NOWAIT ] <SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >where <TT CLASS="REPLACEABLE" ><I >action</I ></TT > is one of:</SPAN ></SPAN > ALTER [ COLUMN ] <TT CLASS="REPLACEABLE" ><I >column_name</I ></TT > SET STATISTICS <TT CLASS="REPLACEABLE" ><I >integer</I ></TT > ALTER [ COLUMN ] <TT CLASS="REPLACEABLE" ><I >column_name</I ></TT > SET ( <TT CLASS="REPLACEABLE" ><I >attribute_option</I ></TT > = <TT CLASS="REPLACEABLE" ><I >value</I ></TT > [, ... ] ) ALTER [ COLUMN ] <TT CLASS="REPLACEABLE" ><I >column_name</I ></TT > RESET ( <TT CLASS="REPLACEABLE" ><I >attribute_option</I ></TT > [, ... ] ) ALTER [ COLUMN ] <TT CLASS="REPLACEABLE" ><I >column_name</I ></TT > SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN } CLUSTER ON <TT CLASS="REPLACEABLE" ><I >index_name</I ></TT > SET WITHOUT CLUSTER SET ( <TT CLASS="REPLACEABLE" ><I >storage_parameter</I ></TT > [= <TT CLASS="REPLACEABLE" ><I >value</I ></TT >] [, ... ] ) RESET ( <TT CLASS="REPLACEABLE" ><I >storage_parameter</I ></TT > [, ... ] ) OWNER TO { <TT CLASS="REPLACEABLE" ><I >new_owner</I ></TT > | CURRENT_USER | SESSION_USER }</PRE ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN74773" ></A ><H2 >Description</H2 ><P > <TT CLASS="COMMAND" >ALTER MATERIALIZED VIEW</TT > changes various auxiliary properties of an existing materialized view. </P ><P > You must own the materialized view to use <TT CLASS="COMMAND" >ALTER MATERIALIZED VIEW</TT >. To change a materialized view's schema, you must also have <TT CLASS="LITERAL" >CREATE</TT > privilege on the new schema. To alter the owner, you must also be a direct or indirect member of the new owning role, and that role must have <TT CLASS="LITERAL" >CREATE</TT > privilege on the materialized view's schema. (These restrictions enforce that altering the owner doesn't do anything you couldn't do by dropping and recreating the materialized view. However, a superuser can alter ownership of any view anyway.) </P ><P > The <TT CLASS="LITERAL" >DEPENDS ON EXTENSION</TT > form marks the materialized view as dependent on an extension, such that the materialized view will automatically be dropped if the extension is dropped. </P ><P > The statement subforms and actions available for <TT CLASS="COMMAND" >ALTER MATERIALIZED VIEW</TT > are a subset of those available for <TT CLASS="COMMAND" >ALTER TABLE</TT >, and have the same meaning when used for materialized views. See the descriptions for <A HREF="sql-altertable.html" >ALTER TABLE</A > for details. </P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN74787" ></A ><H2 >Parameters</H2 ><P ></P ><DIV CLASS="VARIABLELIST" ><DL ><DT ><TT CLASS="REPLACEABLE" ><I >name</I ></TT ></DT ><DD ><P > The name (optionally schema-qualified) of an existing materialized view. </P ></DD ><DT ><TT CLASS="REPLACEABLE" ><I >column_name</I ></TT ></DT ><DD ><P > Name of a new or existing column. </P ></DD ><DT ><TT CLASS="REPLACEABLE" ><I >extension_name</I ></TT ></DT ><DD ><P > The name of the extension that the materialized view is to depend on. </P ></DD ><DT ><TT CLASS="REPLACEABLE" ><I >new_column_name</I ></TT ></DT ><DD ><P > New name for an existing column. </P ></DD ><DT ><TT CLASS="REPLACEABLE" ><I >new_owner</I ></TT ></DT ><DD ><P > The user name of the new owner of the materialized view. </P ></DD ><DT ><TT CLASS="REPLACEABLE" ><I >new_name</I ></TT ></DT ><DD ><P > The new name for the materialized view. </P ></DD ><DT ><TT CLASS="REPLACEABLE" ><I >new_schema</I ></TT ></DT ><DD ><P > The new schema for the materialized view. </P ></DD ></DL ></DIV ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN74825" ></A ><H2 >Examples</H2 ><P > To rename the materialized view <TT CLASS="LITERAL" >foo</TT > to <TT CLASS="LITERAL" >bar</TT >: </P><PRE CLASS="PROGRAMLISTING" >ALTER MATERIALIZED VIEW foo RENAME TO bar;</PRE ><P></P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN74831" ></A ><H2 >Compatibility</H2 ><P > <TT CLASS="COMMAND" >ALTER MATERIALIZED VIEW</TT > is a <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > extension. </P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN74836" ></A ><H2 >See Also</H2 ><A HREF="sql-creatematerializedview.html" >CREATE MATERIALIZED VIEW</A >, <A HREF="sql-dropmaterializedview.html" >DROP MATERIALIZED VIEW</A >, <A HREF="sql-refreshmaterializedview.html" >REFRESH MATERIALIZED VIEW</A ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="sql-alterlargeobject.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="sql-alteroperator.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >ALTER LARGE OBJECT</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="sql-commands.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >ALTER OPERATOR</TD ></TR ></TABLE ></DIV ></BODY ></HTML >