REINDEX { TABLE | DATABASE | INDEX } name [ FORCE ]
Recreate all indexes of a specfied table.
Recreate all system indexes of a specfied database.
Recreate a specfied index.
The name of the specific table/database/index to be be reindexed.
Recreate indexes forcedly. Without this keyword REINDEX does nothing unless target indexes are invalidated.
Message returned if the table is successfully reindexed.
REINDEX is used to recover corrupted system indexes. In order to run REINDEX command,Postmaster must be shutdown and standalone 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.
Recreate the table mytable:
REINDEX TABLE mytable;
Some more examples:
REINDEX DATABASE my_database FORCE; REINDEX INDEX my_index;
There is no REINDEX in SQL92.