Help Center > > Developer Guide> SQL Reference> SQL Syntax> ALTER INDEX

ALTER INDEX

Updated at: Jul 15, 2020 GMT+08:00

Function

ALTER INDEX modifies the definition of an existing index.

There are several sub-forms:

  • IF EXISTS

    If the specified index does not exist, a notice instead of an error is sent.

  • RENAME TO

    Changes only the name of the index. There is no effect on the stored data.

  • SET TABLESPACE

    This option changes the index tablespace to the specified tablespace, and moves the index-related data files to the new tablespace.

  • SET ( { STORAGE_PARAMETER = value } [, ...] )

    Change one or more index-method-specific storage parameters. Note that the index contents will not be modified immediately by this command. You might need to rebuild the index with REINDEX to get the desired effects depending on parameters.

  • RESET ( { storage_parameter } [, ...] )

    Reset one or more index-method-specific storage parameters to the default value. Similar to the SET statement, REINDEX may be used to completely update the index.

  • [ MODIFY PARTITION index_partition_name ] UNUSABLE

    Sets the index on a table or index partition to be unavailable.

  • REBUILD [ PARTITION index_partition_name ]

    Recreates the index on a table or index partition.

  • RENAME PARTITION

    Renames an index partition.

  • MOVE PARTITION

    Modifies the tablespace of an index partition.

Precautions

  • Only the owner of an index or a system administrator can run this statement.
  • Tablespaces of partitioned table indexes cannot be changed. However, tablespaces of partition indexes can be changed.

Syntax

  • Rename a table index.
    1
    2
    ALTER INDEX [ IF EXISTS ] index_name 
        RENAME TO new_name;
    
  • Modify the storage parameter of a table index.
    1
    2
    ALTER INDEX [ IF EXISTS ] index_name 
        SET ( {storage_parameter = value} [, ... ] );
    
  • Reset the storage parameter of a table index.
    1
    2
    ALTER INDEX [ IF EXISTS ] index_name 
        RESET ( storage_parameter [, ... ] ) ;
    
  • Set a table index or an index partition to be unavailable.
    1
    2
    ALTER INDEX [ IF EXISTS ] index_name 
        [ MODIFY PARTITION index_partition_name ] UNUSABLE;
    

    The syntax cannot be used for column-store tables.

  • Rebuild a table index or index partition.
    1
    2
    ALTER INDEX index_name 
        REBUILD [ PARTITION index_partition_name ];
    
  • Rename an index partition.
    1
    2
    ALTER INDEX [ IF EXISTS ] index_name 
        RENAME PARTITION index_partition_name TO new_index_partition_name;
    

    PG_OBJECT does not support the record of the syntax when the last modification time of the index is recorded.

Parameter Description

  • index_name

    Specifies the index name to be modified.

  • new_name

    Specifies the new name for the index.

    Value range: A string that must comply with the identifier naming rules.

  • storage_parameter

    Specifies the name of an index-method-specific parameter.

  • value

    Specifies the new value for an index-method-specific storage parameter. This might be a number or a word depending on the parameter.

  • new_index_partition_name

    Specifies the new name of the index partition.

  • index_partition_name

    Specifies the name of the index partition.

Examples

See Examples in the CREATE INDEX.

Helpful Links

CREATE INDEX, DROP INDEX, REINDEX

Did you find this page helpful?

Submit successfully!

Thank you for your feedback. Your feedback helps make our documentation better.

Failed to submit the feedback. Please try again later.

Which of the following issues have you encountered?







Please complete at least one feedback item.

Content most length 200 character

Content is empty.

OK Cancel