Ir al contenido principal

TRUNCATE

El comando TRUNCATE no es un comando DML, es un comando DDL. La diferencia es enorme. Los comandos DML afectan datos como el INSERT, UPDATE y DELETE y son parte de una transacción. Por ahora, solo decir que una transacción puede ser controlada, en el sentido de decir que el usuario elige si el trabajo de una transacción permanece o si se revierte. Esto es muy útil, pero obliga a la base de datos para hacer el trabajo adicional detrás de las escenas que el usuario no es consciente de. Comandos DDL no son transacciones de usuario (aunque dentro de la base de datos, que son, de hecho, implementado como transacciones, pero los desarrolladores no pueden controlar), y no hay posibilidad de elegir si desea que sean permanentes o para revertirlas. Una vez ejecutado, se hacen. Sin embargo, en comparación con DML, son muy rápidos.
Desde el punto de vista de un usuario un Truncation es equivalente  a la ejecución de un DELETE de las filas de una tabla, un DELETE sin clausula WHERE. Pero mientras un DELETE puede tomar un tiempo un Truncation es instantáneo.

Las transacciones consisten de INSERT, UPDATE y DELETE o incluso MERGE pueden ser hechas permanentes con COMMIT o reversadas con un ROLLBACK. Un comando TRUNCATE, como cualquier otro comando DDL, es inmediatamente permanente y nunca puede ser reversado.

Comentarios