231 lines
7.6 KiB
Plaintext
231 lines
7.6 KiB
Plaintext
<!--
|
|
doc/src/sgml/ref/alter_view.sgml
|
|
PostgreSQL documentation
|
|
-->
|
|
|
|
<refentry id="sql-alterview">
|
|
<indexterm zone="sql-alterview">
|
|
<primary>ALTER VIEW</primary>
|
|
</indexterm>
|
|
|
|
<refmeta>
|
|
<refentrytitle>ALTER VIEW</refentrytitle>
|
|
<manvolnum>7</manvolnum>
|
|
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>ALTER VIEW</refname>
|
|
<refpurpose>change the definition of a view</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<synopsis>
|
|
ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable> ALTER [ COLUMN ] <replaceable class="parameter">column_name</replaceable> SET DEFAULT <replaceable class="parameter">expression</replaceable>
|
|
ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable> ALTER [ COLUMN ] <replaceable class="parameter">column_name</replaceable> DROP DEFAULT
|
|
ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable> OWNER TO { <replaceable class="parameter">new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
|
|
ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable> RENAME [ COLUMN ] <replaceable class="parameter">column_name</replaceable> TO <replaceable class="parameter">new_column_name</replaceable>
|
|
ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable> RENAME TO <replaceable class="parameter">new_name</replaceable>
|
|
ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable> SET SCHEMA <replaceable class="parameter">new_schema</replaceable>
|
|
ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable> SET ( <replaceable class="parameter">view_option_name</replaceable> [= <replaceable class="parameter">view_option_value</replaceable>] [, ... ] )
|
|
ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable> RESET ( <replaceable class="parameter">view_option_name</replaceable> [, ... ] )
|
|
</synopsis>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1>
|
|
<title>Description</title>
|
|
|
|
<para>
|
|
<command>ALTER VIEW</command> changes various auxiliary properties
|
|
of a view. (If you want to modify the view's defining query,
|
|
use <command>CREATE OR REPLACE VIEW</command>.)
|
|
</para>
|
|
|
|
<para>
|
|
You must own the view to use <command>ALTER VIEW</command>.
|
|
To change a view's schema, you must also have <literal>CREATE</literal>
|
|
privilege on the new schema.
|
|
To alter the owner, you must be able to <literal>SET ROLE</literal> to the
|
|
new owning role, and that role must have <literal>CREATE</literal>
|
|
privilege on the view's schema.
|
|
(These restrictions enforce that altering the owner
|
|
doesn't do anything you couldn't do by dropping and recreating the view.
|
|
However, a superuser can alter ownership of any view anyway.)
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Parameters</title>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">name</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The name (optionally schema-qualified) of an existing view.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">column_name</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
Name of an existing column.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">new_column_name</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
New name for an existing column.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><literal>IF EXISTS</literal></term>
|
|
<listitem>
|
|
<para>
|
|
Do not throw an error if the view does not exist. A notice is issued
|
|
in this case.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><literal>SET</literal>/<literal>DROP DEFAULT</literal></term>
|
|
<listitem>
|
|
<para>
|
|
These forms set or remove the default value for a column.
|
|
A view column's default value is substituted into any
|
|
<command>INSERT</command> or <command>UPDATE</command> command whose target is the
|
|
view, before applying any rules or triggers for the view. The view's
|
|
default will therefore take precedence over any default values from
|
|
underlying relations.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">new_owner</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The user name of the new owner of the view.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">new_name</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The new name for the view.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">new_schema</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The new schema for the view.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><literal>SET ( <replaceable class="parameter">view_option_name</replaceable> [= <replaceable class="parameter">view_option_value</replaceable>] [, ... ] )</literal></term>
|
|
<term><literal>RESET ( <replaceable class="parameter">view_option_name</replaceable> [, ... ] )</literal></term>
|
|
<listitem>
|
|
<para>
|
|
Sets or resets a view option. Currently supported options are:
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><literal>check_option</literal> (<type>enum</type>)</term>
|
|
<listitem>
|
|
<para>
|
|
Changes the check option of the view. The value must
|
|
be <literal>local</literal> or <literal>cascaded</literal>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><literal>security_barrier</literal> (<type>boolean</type>)</term>
|
|
<listitem>
|
|
<para>
|
|
Changes the security-barrier property of the view. The value must
|
|
be a Boolean value, such as <literal>true</literal>
|
|
or <literal>false</literal>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><literal>security_invoker</literal> (<type>boolean</type>)</term>
|
|
<listitem>
|
|
<para>
|
|
Changes the security-invoker property of the view. The value must
|
|
be a Boolean value, such as <literal>true</literal>
|
|
or <literal>false</literal>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist></para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Notes</title>
|
|
|
|
<para>
|
|
For historical reasons, <command>ALTER TABLE</command> can be used with
|
|
views too; but the only variants of <command>ALTER TABLE</command>
|
|
that are allowed with views are equivalent to the ones shown above.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Examples</title>
|
|
|
|
<para>
|
|
To rename the view <literal>foo</literal> to
|
|
<literal>bar</literal>:
|
|
<programlisting>
|
|
ALTER VIEW foo RENAME TO bar;
|
|
</programlisting>
|
|
</para>
|
|
|
|
<para>
|
|
To attach a default column value to an updatable view:
|
|
<programlisting>
|
|
CREATE TABLE base_table (id int, ts timestamptz);
|
|
CREATE VIEW a_view AS SELECT * FROM base_table;
|
|
ALTER VIEW a_view ALTER COLUMN ts SET DEFAULT now();
|
|
INSERT INTO base_table(id) VALUES(1); -- ts will receive a NULL
|
|
INSERT INTO a_view(id) VALUES(2); -- ts will receive the current time
|
|
</programlisting></para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Compatibility</title>
|
|
|
|
<para>
|
|
<command>ALTER VIEW</command> is a <productname>PostgreSQL</productname>
|
|
extension of the SQL standard.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>See Also</title>
|
|
|
|
<simplelist type="inline">
|
|
<member><xref linkend="sql-createview"/></member>
|
|
<member><xref linkend="sql-dropview"/></member>
|
|
</simplelist>
|
|
</refsect1>
|
|
</refentry>
|