Oracle Drop Index

Oracle Drop Index

Nos bancos de dados Oracle, um índice refere -se a uma estrutura de dados que avança a velocidade das operações de recuperação de dados em uma tabela de banco de dados. No entanto, isso pode vir com uma penalidade de operações de gravação extras e espaço de armazenamento em seu banco de dados.

Neste tutorial, você aprenderá como soltar um índice existente de uma tabela de banco de dados usando o comando Drop Index.

Oracle Drop Index Command

O seguinte demonstra a sintaxe do comando Drop Index nos bancos de dados Oracle:

Drop índice index_name;


Substitua index_name pelo nome do índice que você deseja soltar.

Se o índice que você deseja soltar estiver em um esquema diferente, você precisará especificar o nome do esquema na instrução DROP INDEX. Por exemplo:

Drop Index Schema_Name.index_name;


Nesse caso, você precisa substituir o Schema_Name pelo nome do esquema onde o índice reside.

Oracle Criar amostra Índice

A declaração de exemplo abaixo cria um índice de amostra na tabela de funcionários para fins de ilustração.

criar índice multi_lookup nos funcionários (primeiro_name, last_name);


Esta seção não cobre os detalhes da criação de índices nos bancos de dados Oracle. Verifique nosso tutorial sobre o comando Oracle Create Index para saber mais.

Depois que o índice é criado, podemos removê -lo como mostrado na seção abaixo:

Oracle Drop Index

Use a instrução DROP INDEX seguida pelo nome do índice para soltar o índice acima, como mostrado:

INDEX DE DESLIGADO MULTI_LOOKUP;


A consulta acima removerá o índice chamado multi_lookup do esquema atual.

Oracle Drop Index - Condicional

No Oracle, tentar remover um índice inexistente resultará em um erro. Veja a consulta de exemplo abaixo:

INDEX DE DESLIGADO MULTI_LOOKUP;


Como o índice multi_lookup não existe, a consulta retornará um erro:

[72000] [1418] ORA-01418: o índice especificado não existe


Em alguns mecanismos de banco de dados, poderíamos superar isso adicionando a cláusula se não existe, o que impede a declaração de retornar uma exceção se o erro não existir.

Infelizmente, algumas versões mais antigas do Oracle não têm o comando if exist. No entanto, podemos implementar a lógica personalizada para impedir exceções se o índice não existir, como mostrado:

Declarar index_num inteiro;
COMEÇAR
Selecione a contagem (*) em index_num
De user_indexes
Onde index_name = 'index_name';
Se index_count> 0 então
Execute o 'Drop Index_name imediato imediato;
FIM SE;
FIM;


Este código usa um bloco PL/SQL para soltar um índice se existir. Começamos declarando uma variável chamada index_num para armazenar o número de índices com o nome fornecido.

Em seguida, usamos uma instrução SELECT para contar o número de índices com o nome fornecido na tabela user_indexes e armazenar o resultado na variável index_num.

Em seguida, usamos um bloco if para verificar se o valor da variável index_num é maior que 0. Se verdadeiro, removemos todos os índices com o nome especificado. Caso contrário, não conseguimos chamar a declaração de remoção de índice, impedindo qualquer exceção.

Conclusão

Em conclusão, a instrução DROP INDEX remove um índice de uma tabela de banco de dados no Oracle. A sintaxe para esta afirmação é:

Drop índice index_name;


Para soltar um índice em um esquema diferente, você pode usar a seguinte sintaxe:

Drop Index Schema_Name.index_name;


Você pode usar a cláusula se existe na declaração de índice de queda para evitar que uma exceção seja lançada se o índice não existir. Por exemplo:

Índice de queda se existe index_name;


Alternativamente, como mostrado nos exemplos anteriores, você pode usar um bloco PL/SQL para verificar se o índice existe antes de tentar soltá -lo.