Truncate table en Oracle

Truncate table en Oracle es un comando diseñado para eliminar todos los registros de una tabla de forma rápida y eficiente. A diferencia del comando DELETE, que realiza un escaneo fila por fila antes de eliminar los datos, el comando TRUNCATE omite este paso, lo que lo hace significativamente más rápido, especialmente en tablas grandes. Esta característica lo convierte en una excelente opción para operaciones donde no se necesita conservar los registros eliminados ni generar registros en el log de transacciones.

El uso de TRUNCATE no solo mejora el rendimiento, sino que también simplifica el manejo de grandes volúmenes de datos, ya que libera el espacio utilizado por las filas eliminadas, dejando la tabla lista para ser reutilizada sin afectar su estructura ni las dependencias asociadas.

En este artículo, primero veremos la sintaxis básica para aplicar el comando TRUNCATE TABLE, y luego exploraremos ejemplos prácticos que ilustran sus ventajas y consideraciones importantes a tener en cuenta.

Para más información, puedes consultar la documentación oficial de ORACLE.

Sintaxis

Para eliminar todos los registros de una tabla de forma rápida y eficiente, utiliza la siguiente sentencia:

TRUNCATE TABLE nombre_tabla;

Este comando vacía la tabla por completo sin realizar un escaneo fila por fila, optimizando el tiempo de ejecución.

Ejemplo

Truncar una tabla

En el siguiente ejemplo borramos todos los registros de la tabla empleados:

TRUNCATE TABLE empleados;

Truncar tabla y todo objeto que depende de ella

Si la tabla tiene una clave externa (foreign key) vinculada a otra tabla, Oracle, por defecto, no eliminará los datos de la tabla relacionada. Para asegurarte de que los registros se eliminen tanto en la tabla principal como en la relacionada, debes ejecutar el siguiente comando:

TRUNCATE TABLE nombre_tabla 
CASCADE;

En el siguiente ejemplo estamos eliminando datos de la tabla empleados, pero además estamos borramos datos de aquellas tablas que tengan referencias a la tabla recursos.

TRUNCATE TABLE empleados CASCADE;

Utiliza la opción CASCADE con precaución, ya que puede eliminar datos en tablas relacionadas que quizás no hayas considerado. Si tu tabla tiene claves externas y no incluyes la opción CASCADE, Oracle no permitirá realizar el truncado. Esto ocurre porque, de forma predeterminada, el comando TRUNCATE TABLE aplica la opción RESTRICT para evitar posibles eliminaciones no deseadas y proteger la integridad de los datos.

Escribir un comentario