Soltar vs Truncar
Drop y Truncate son dos declaraciones SQL (lenguaje de consulta estructurado) que se utilizan en los sistemas de gestión de bases de datos, donde deseamos eliminar registros de datos de una base de datos. Tanto las instrucciones Drop como Truncate eliminan todos los datos de una tabla y la instrucción SQL relacionada. La operación de eliminación no es efectiva en este caso porque utiliza más espacios de almacenamiento que Eliminar y Truncar.
En caso de que queramos descartar una tabla en una base de datos junto con todos sus datos, SQL nos permite realizar esto fácilmente usando la instrucción Drop. El comando Drop es un comando DDL (lenguaje de definición de datos) y se puede usar para destruir una base de datos, una tabla, un índice o una vista existentes. Elimina toda la información de una tabla, así como la estructura de la tabla de la base de datos. Además, es posible que deseemos deshacernos de todos los datos en una tabla simplemente, pero sin la tabla, y podemos usar la instrucción Truncar en SQL en tal escenario. Truncar también es un comando DDL y elimina todas las filas de una tabla, pero conserva la definición de la tabla para uso futuro.
Soltar comando
Como se mencionó anteriormente, el comando Soltar elimina la definición de la tabla y todos sus datos, restricciones de integridad, índices, activadores y privilegios de acceso que se crearon en esa tabla en particular. Por lo tanto, elimina el objeto existente de la base de datos por completo, y las relaciones con otras tablas tampoco serán válidas después de ejecutar el comando. También elimina toda la información sobre la tabla del diccionario de datos. La siguiente es la sintaxis típica para usar la instrucción Drop en una tabla.
DROP TABLE
Simplemente tenemos que reemplazar el nombre de la tabla que queremos eliminar de la base de datos en el ejemplo anterior del comando Soltar.
Es importante señalar que la instrucción Drop no se puede utilizar para eliminar una tabla a la que ya se ha hecho referencia mediante una restricción de clave externa. En ese caso, la restricción de clave externa de referencia, o esa tabla en particular, debería eliminarse primero. Además, la instrucción Drop no se puede aplicar en las tablas del sistema en la base de datos.
Como el comando Drop es una instrucción de confirmación automática, la operación una vez iniciada no se puede deshacer y no se activará ningún disparador. Cuando se descarta una tabla, todas las referencias a la tabla no serán válidas y, por lo tanto, si queremos usar la tabla nuevamente, debe volver a crearse con todas las restricciones de integridad y privilegios de acceso. Todas las relaciones con las otras tablas también deben ubicarse nuevamente.
Comando truncado
El comando Truncar es un comando DDL y elimina todas las filas de una tabla sin ninguna condición especificada por el usuario y libera el espacio utilizado por la tabla, pero la estructura de la tabla con sus columnas, índices y restricciones sigue siendo la misma. Truncar elimina los datos de una tabla desasignando las páginas de datos utilizadas para almacenar los datos de la tabla, y solo estas desasignaciones de páginas se mantienen en el registro de transacciones. Por lo tanto, utiliza menos recursos de registro de transacciones y recursos del sistema en comparación con otros comandos SQL relacionados, como Eliminar. Entonces Truncate es una declaración un poco más rápida que otras. La siguiente es la sintaxis típica para el comando Truncar.
TABLA TRUNCADA
Deberíamos reemplazar el nombre de la tabla, de la que queremos eliminar todos los datos, en la sintaxis anterior.
Truncate no se puede usar en una tabla a la que se ha hecho referencia mediante una restricción de clave externa. Utiliza una confirmación automáticamente antes de actuar y otra confirmación después, por lo que es imposible revertir la transacción y no se activan desencadenadores. Si queremos reutilizar la tabla, solo necesitamos acceder a la definición de tabla existente en la base de datos.
¿Cuál es la diferencia entre Eliminar y Truncar?
Tanto los comandos Drop como Truncate son comandos DDL y también instrucciones de confirmación automática, por lo que las transacciones realizadas con estos comandos no se pueden deshacer.
La principal diferencia entre Eliminar y Truncar es que el comando Eliminar no solo elimina todos los datos de una tabla, sino que también elimina la estructura de la tabla de forma permanente de la base de datos con todas las referencias, mientras que el comando Truncar solo elimina todos las filas de una tabla y conserva la estructura de la tabla y sus referencias.
Si se descarta una tabla, las relaciones con otras tablas dejarán de ser válidas y las restricciones de integridad y los privilegios de acceso también se eliminarán. Entonces, si se requiere reutilizar la tabla, debe reconstruirse con las relaciones, las restricciones de integridad y también los privilegios de acceso. Pero si se trunca una tabla, la estructura de la tabla y sus restricciones permanecen para uso futuro y, por lo tanto, ninguna de las recreaciones anteriores es necesaria para su reutilización.
Cuando se aplican estos comandos, debemos tener cuidado al usarlos. Además, deberíamos tener una mejor comprensión de la naturaleza de estos comandos, cómo funcionan, y también una planificación cuidadosa antes de usarlos para evitar perder elementos esenciales. Finalmente, ambos comandos se pueden usar para limpiar las bases de datos rápida y fácilmente, consumiendo menos recursos.