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.