DROP INDEX — remove um índice
DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] nome_do_índice [, ...]
[ CASCADE | RESTRICT ]
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.
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 EXISTSNão será relatado nenhum erro se o índice não existir. É emitido um aviso neste caso.
nome_do_índiceO nome (opcionalmente qualificado pelo esquema) do índice a ser removido.
CASCADERemove automaticamente os objetos que dependem do índice e, por sua vez, todos os objetos que dependem desses objetos (veja Acompanhamento de dependência).
RESTRICTRecusa remover o índice se algum objeto depender dele. Este é o comportamento padrão.
Este comando remove o índice title_idx:
DROP INDEX title_idx;
O comando DROP INDEX é uma extensão do
PostgreSQL à linguagem SQL.
Não existe provisionamento para índices no padrão SQL.