En las bases de datos de Oracle, un índice se refiere a una estructura de datos que avanza la velocidad de las operaciones de recuperación de datos en una tabla de base de datos. Sin embargo, esto puede venir con una penalización de operaciones de escritura adicionales y espacio de almacenamiento en su base de datos.
En este tutorial, aprenderá cómo soltar un índice existente de una tabla de base de datos utilizando el comando Drop Index.
Comando Oracle Drop Index
A continuación se demuestra la sintaxis del comando Drop Index en las bases de datos Oracle:
Drop index_name;
Sustituir index_name con el nombre del índice que desea soltar.
Si el índice que desea soltar está en un esquema diferente, deberá especificar el nombre del esquema en la instrucción Drop Index. Por ejemplo:
Drop Index Schema_Name.index_name;
En este caso, debe reemplazar schema_name con el nombre del esquema donde reside el índice.
Oracle Crear índice de muestra
La declaración de ejemplo a continuación crea un índice de muestra en la tabla de los empleados para fines de ilustración.
crear índice multi_lookup en empleados (first_name, last_name);
Esta sección no cubre los detalles de la creación de índices en las bases de datos de Oracle. Consulte nuestro tutorial sobre el comando de Oracle Crear índice para obtener más información.
Una vez que se crea el índice, podemos eliminarlo como se muestra en la sección a continuación:
Oracle Drop Index
Use la declaración de índice de caída seguido del nombre del índice para soltar el índice anterior, como se muestra:
Drop Index multi_lookup;
La consulta anterior eliminará el índice llamado multi_lookup del esquema actual.
Índice de caída de Oracle - condicional
En Oracle, intentar eliminar un índice inexistente dará como resultado un error. Tome la consulta de ejemplo a continuación:
Drop Index multi_lookup;
Dado que el índice multi_lookup no existe, la consulta devolverá un error:
[72000] [1418] ORA-01418: el índice especificado no existe
En algunos motores de base de datos, podríamos superar esto agregando la cláusula si no existe, lo que evita que la declaración devuelva una excepción si el error no existe.
Desafortunadamente, algunas versiones anteriores de Oracle no tienen el comando if existe. Sin embargo, podemos implementar una lógica personalizada para prevenir excepciones si el índice no existe, como se muestra:
Declarar index_num entero;
COMENZAR
Seleccione Count (*) en index_num
De user_indexes
Donde index_name = 'index_name';
Si index_count> 0 entonces
Ejecutar inmediatamente 'Drop index_name';
TERMINARA SI;
FIN;
Este código utiliza un bloque PL/SQL para soltar un índice si existe. Comenzamos declarando una variable llamada index_num para almacenar el número de índices con el nombre de pila.
A continuación, utilizamos una instrucción SELECT para contar el número de índices con el nombre de determinación en la tabla user_indexes y almacenar el resultado en la variable index_num.
Luego usamos un bloque if para verificar si el valor de la variable index_num es mayor que 0. Si es cierto, eliminamos todos los índices con el nombre especificado. De lo contrario, no llamamos a la declaración de índice de eliminación evitando cualquier excepción.
Conclusión
En conclusión, la declaración de índice de caída elimina un índice de una tabla de base de datos en Oracle. La sintaxis para esta declaración es:
Drop index_name;
Para soltar un índice en un esquema diferente, puede usar la siguiente sintaxis:
Drop Index Schema_Name.index_name;
Puede usar la cláusula if exists en la instrucción Drop Index para evitar que se arroje una excepción si el índice no existe. Por ejemplo:
Índice de caída si existe index_name;
Alternativamente, como se muestra en los ejemplos anteriores, puede usar un bloque PL/SQL para verificar si el índice existe antes de intentar solucionarlo.