3rd October 2019: PostgreSQL 12 Released!
Supported Versions: Current (12) / 11 / 10 / 9.6 / 9.5 / 9.4
Development Versions: devel
Unsupported versions: 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the supported versions listed above instead.

REINDEX

Name

REINDEX  --  Recover corrupted system indexes under stand-alone Postgres

Synopsis

REINDEX { TABLE | DATABASE | INDEX } name [ FORCE ]
  

Inputs

TABLE

Recreate all indexes of a specified table.

DATABASE

Recreate all system indexes of a specified database.

INDEX

Recreate a specified index.

name

The name of the specific table/database/index to be be reindexed.

FORCE

Recreate indexes forcedly. Without this keyword REINDEX does nothing unless target indexes are invalidated.

Outputs

REINDEX

Message returned if the table is successfully reindexed.

Description

REINDEX is used to recover corrupted system indexes. In order to run REINDEX command, postmaster must be shut down and stand-alone Postgres should be started instead with options -O and -P (an option to ignore system indexes). Note that we couldn't rely on system indexes for the recovery of system indexes.

Usage

Recreate the table mytable:

     REINDEX TABLE mytable;
   

Some more examples:

REINDEX DATABASE my_database FORCE;
REINDEX INDEX my_index;
   

Compatibility

SQL92

There is no REINDEX in SQL92.