mirror of
https://github.com/postgres/postgres.git
synced 2025-11-09 06:21:09 +03:00
226 lines
6.2 KiB
Plaintext
226 lines
6.2 KiB
Plaintext
<!--
|
|
doc/src/sgml/ref/alter_index.sgml
|
|
PostgreSQL documentation
|
|
-->
|
|
|
|
<refentry id="SQL-ALTERINDEX">
|
|
<refmeta>
|
|
<refentrytitle>ALTER INDEX</refentrytitle>
|
|
<manvolnum>7</manvolnum>
|
|
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>ALTER INDEX</refname>
|
|
<refpurpose>change the definition of an index</refpurpose>
|
|
</refnamediv>
|
|
|
|
<indexterm zone="sql-alterindex">
|
|
<primary>ALTER INDEX</primary>
|
|
</indexterm>
|
|
|
|
<refsynopsisdiv>
|
|
<synopsis>
|
|
ALTER INDEX [ IF EXISTS ] <replaceable class="PARAMETER">name</replaceable> RENAME TO <replaceable class="PARAMETER">new_name</replaceable>
|
|
ALTER INDEX [ IF EXISTS ] <replaceable class="PARAMETER">name</replaceable> SET TABLESPACE <replaceable class="PARAMETER">tablespace_name</replaceable>
|
|
ALTER INDEX [ IF EXISTS ] <replaceable class="PARAMETER">name</replaceable> SET ( <replaceable class="PARAMETER">storage_parameter</replaceable> = <replaceable class="PARAMETER">value</replaceable> [, ... ] )
|
|
ALTER INDEX [ IF EXISTS ] <replaceable class="PARAMETER">name</replaceable> RESET ( <replaceable class="PARAMETER">storage_parameter</replaceable> [, ... ] )
|
|
</synopsis>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1>
|
|
<title>Description</title>
|
|
|
|
<para>
|
|
<command>ALTER INDEX</command> changes the definition of an existing index.
|
|
There are several subforms:
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
<term><literal>IF EXISTS</literal></term>
|
|
<listitem>
|
|
<para>
|
|
Do not throw an error if the index does not exist. A notice is issued
|
|
in this case.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><literal>RENAME</literal></term>
|
|
<listitem>
|
|
<para>
|
|
The <literal>RENAME</literal> form changes the name of the index.
|
|
There is no effect on the stored data.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><literal>SET TABLESPACE</literal></term>
|
|
<listitem>
|
|
<para>
|
|
This form changes the index's tablespace to the specified tablespace and
|
|
moves the data file(s) associated with the index to the new tablespace.
|
|
See also
|
|
<xref linkend="SQL-CREATETABLESPACE">.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><literal>SET ( <replaceable class="PARAMETER">storage_parameter</replaceable> = <replaceable class="PARAMETER">value</replaceable> [, ... ] )</literal></term>
|
|
<listitem>
|
|
<para>
|
|
This form changes one or more index-method-specific storage parameters
|
|
for the index. See
|
|
<xref linkend="SQL-CREATEINDEX">
|
|
for details on the available parameters. Note that the index contents
|
|
will not be modified immediately by this command; depending on the
|
|
parameter you might need to rebuild the index with
|
|
<xref linkend="SQL-REINDEX">
|
|
to get the desired effects.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><literal>RESET ( <replaceable class="PARAMETER">storage_parameter</replaceable> [, ... ] )</literal></term>
|
|
<listitem>
|
|
<para>
|
|
This form resets one or more index-method-specific storage parameters to
|
|
their defaults. As with <literal>SET</>, a <literal>REINDEX</literal>
|
|
might be needed to update the index entirely.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
</para>
|
|
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Parameters</title>
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="PARAMETER">name</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The name (possibly schema-qualified) of an existing index to
|
|
alter.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="PARAMETER">new_name</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The new name for the index.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="PARAMETER">tablespace_name</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The tablespace to which the index will be moved.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="PARAMETER">storage_parameter</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The name of an index-method-specific storage parameter.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="PARAMETER">value</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The new value for an index-method-specific storage parameter.
|
|
This might be a number or a word depending on the parameter.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Notes</title>
|
|
|
|
<para>
|
|
These operations are also possible using
|
|
<xref linkend="SQL-ALTERTABLE">.
|
|
<command>ALTER INDEX</> is in fact just an alias for the forms
|
|
of <command>ALTER TABLE</> that apply to indexes.
|
|
</para>
|
|
|
|
<para>
|
|
There was formerly an <command>ALTER INDEX OWNER</> variant, but
|
|
this is now ignored (with a warning). An index cannot have an owner
|
|
different from its table's owner. Changing the table's owner
|
|
automatically changes the index as well.
|
|
</para>
|
|
|
|
<para>
|
|
Changing any part of a system catalog index is not permitted.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Examples</title>
|
|
<para>
|
|
To rename an existing index:
|
|
<programlisting>
|
|
ALTER INDEX distributors RENAME TO suppliers;
|
|
</programlisting>
|
|
</para>
|
|
|
|
<para>
|
|
To move an index to a different tablespace:
|
|
<programlisting>
|
|
ALTER INDEX distributors SET TABLESPACE fasttablespace;
|
|
</programlisting>
|
|
</para>
|
|
|
|
<para>
|
|
To change an index's fill factor (assuming that the index method
|
|
supports it):
|
|
<programlisting>
|
|
ALTER INDEX distributors SET (fillfactor = 75);
|
|
REINDEX INDEX distributors;
|
|
</programlisting></para>
|
|
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Compatibility</title>
|
|
|
|
<para>
|
|
<command>ALTER INDEX</> is a <productname>PostgreSQL</productname>
|
|
extension.
|
|
</para>
|
|
</refsect1>
|
|
|
|
|
|
<refsect1>
|
|
<title>See Also</title>
|
|
|
|
<simplelist type="inline">
|
|
<member><xref linkend="sql-createindex"></member>
|
|
<member><xref linkend="sql-reindex"></member>
|
|
</simplelist>
|
|
</refsect1>
|
|
</refentry>
|