/
githubmirror
/
postgres
Обзор
Документация
Войти
/
githubmirror
/
postgres
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
doc/src/sgml/ref/alter_view.sgml
230 строк
8 KB
Robert Haas
More documentation update for GRANT ... WITH SET OPTION.
16 янв 2023, 18:35
16 янв 2023, 18:35
3cdf750
Код
Авторство
О чём код?
<!-- 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>