DROP INDEX

DROP INDEX — remove um índice

Sinopse

DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] nome_do_índice [, ...]
           [ CASCADE | RESTRICT ]

Descrição

O comando DROP INDEX remove do sistema de banco de dados um índice existente. Para executar este comando, é necessário ser o dono do índice.

Parâmetros

CONCURRENTLY

Remove o índice sem bloquear consultas, inserções, atualizações e exclusões concorrentes na tabela do índice. O comando DROP INDEX normal adquire o bloqueio ACCESS EXCLUSIVE na tabela, bloqueando outros acessos até que a remoção do índice esteja concluída. Com esta opção, o comando aguarda até que as transações conflitantes sejam concluídas.

Há vários cuidados a serem tomados ao usar esta opção. Apenas o nome de um índice pode ser especificado, e a opção CASCADE não tem suporte. (Portanto, um índice que oferece suporte a uma restrição UNIQUE ou PRIMARY KEY não pode ser removido dessa maneira.) Além disso, os comandos DROP INDEX normais podem ser executados dentro de um bloco de transação, enquanto o comando DROP INDEX CONCURRENTLY não pode. Por último, os índices em tabelas particionadas não podem ser removidos usando esta opção.

Para as tabelas temporárias, o comando DROP INDEX é sempre não concorrente, porque nenhuma outra sessão pode acessá-las, e a remoção não concorrente de índice é mais barata.

IF EXISTS

Não será relatado nenhum erro se o índice não existir. É emitido um aviso neste caso.

nome_do_índice

O nome (opcionalmente qualificado pelo esquema) do índice a ser removido.

CASCADE

Remove automaticamente os objetos que dependem do índice e, por sua vez, todos os objetos que dependem desses objetos (veja Acompanhamento de dependência).

RESTRICT

Recusa remover o índice se algum objeto depender dele. Este é o comportamento padrão.

Exemplos

Este comando remove o índice title_idx:

DROP INDEX title_idx;

Conformidade

O comando DROP INDEX é uma extensão do PostgreSQL à linguagem SQL. Não existe provisionamento para índices no padrão SQL.

Veja também

CREATE INDEX