quinta-feira, 30 de agosto de 2007

O Comando ALTER INDEX

Este comando altera um índice, podendo mudar o nome, o tablespace e redefinir parâmetros do mesmo.

Dependendo da sintaxe, pode demandar um comando REINDEX para efetivar a alteração.

O tipo de índice (btree, hash, etc.) não pode ser alterado através do comando ALTER INDEX, assim como os campos indexados e outras características. Neste caso, o objeto índice deve ser excluído e recriado.

Sintaxe:

ALTER INDEX name RENAME TO new_name
ALTER INDEX name SET TABLESPACE tablespace_name
ALTER INDEX name SET ( storage_parameter = value [, ... ] )
ALTER INDEX name RESET ( storage_parameter [, ... ] )

Exemplo:

0 - Índices utilizados no teste.

create index tstdel_ind on tstdel (cod);
create index tstdel_ind_date on tstdel (date);
create index tstdel_ind_coddate on tstdel (cod, date);

1 - Alteração de nome.

ALTER INDEX tstdel_ind_coddate RENAME TO tstdel_ind_coddata;
ALTER INDEX tstdel_ind_date RENAME TO tstdel_ind_data;

2 - Alteração de tablespace.

ALTER INDEX tstdel_ind SET TABLESPACE pg_default;

3 - Alteração de parâmetro de armazenamento, seguida por um REINDEX.

ALTER INDEX tstdel_ind SET ( fillfactor = 80 );
REINDEX INDEX tstdel_ind;

4 - RESET de alterações de parâmetro de armazenamento, seguido por um REINDEX.

ALTER INDEX tstdel_ind RESET (fillfactor);
REINDEX INDEX tstdel_ind;

Nenhum comentário: