ALTER INDEX nome RENAME TO novo_nome ALTER INDEX nome SET TABLESPACE nome_do_espaço_de_tabelas ALTER INDEX nome SET ( parâmetro_de_armazenamento = valor [, ... ] ) ALTER INDEX nome RESET ( parâmetro_de_armazenamento [, ... ] )
O comando ALTER INDEX altera a definição de um índice existente. Existem diversas subformas:
A forma RENAME muda o nome do índice. Não há efeito sobre os dados armazenados.
Esta forma muda o espaço de tabelas do índice para o espaço de tabelas especificado, movendo os arquivos de dados associados ao índice para o novo espaço de tabelas. Consulte também CREATE TABLESPACE.
Esta forma altera um ou mais parâmetros de armazenamento específico do método do índice. Para obter mais informações sobre os parâmetros disponíveis consulte CREATE INDEX. Deve ser observado que o conteúdo do índice não será modificado imediatamente por este comando; dependendo do parâmetro, poderá ser necessário reconstruir o índice utilizando REINDEX para obter os efeitos desejados.
Esta forma redefine um ou mais parâmetros de armazenamento específicos do método do índice para o seu valor padrão. Da mesma forma que no SET, poderá ser necessário utilizar REINDEX para atualizar todo o índice.
O nome (opcionalmente qualificado pelo esquema) do índice existente a ser alterado.
O novo nome do índice.
O espaço de tabelas para o qual o índice será movido.
O nome de um parâmetro de armazenamento específico do método do índice.
O novo valor do parâmetro de armazenamento específico do método do índice. Deve ser um número ou um nome, dependendo do parâmetro.
Estas operações também podem ser feitas utilizando ALTER TABLE. O comando ALTER INDEX é, na verdade, apenas um sinônimo para as formas de ALTER TABLE aplicáveis aos índices.
Existia anteriormente a variante ALTER INDEX OWNER, mas agora esta variante é ignorada (com advertência). O índice não pode ter um dono diferente do dono da tabela. Alterar o dono da tabela altera também automaticamente o índice.
Não é permitido alterar qualquer parte de um índice dos catálogos do sistema.
Para mudar o nome de um índice existente:
ALTER INDEX distribuidores RENAME TO fornecedores;
Para mover um índice para outro espaço de tabelas:
ALTER INDEX distribuidores SET TABLESPACE espaco_de_tabelas_rapido;
Para mudar o fator de preenchimento do índice (assumindo que o método do índice permite isto):
ALTER INDEX distribuidores SET (fillfactor = 75); REINDEX INDEX distribuidores;