logo

Diferencia entre el comando Eliminar y Truncar

La diferencia entre los comandos BORRAR y TRUNCAR es la parte más común de una pregunta de entrevista. Se utilizan principalmente para eliminar datos de la base de datos. La principal diferencia entre ellos es que la instrucción de eliminación elimina datos sin restablecer la identidad de una tabla, mientras que el comando truncar restablece la identidad de una tabla en particular. . Este artículo explica la descripción completa de los comandos DELETE y TRUNCATE y sus diferencias, que se usan principalmente indistintamente pero son totalmente diferentes.

Comando Eliminar vs Truncar

¿Qué es un comando ELIMINAR?

Es un Comando DML o manipulación de datos se utiliza para eliminar registros de una tabla que no es necesaria en la base de datos. Elimina la fila completa de la tabla y produce el recuento de filas eliminadas. Necesitamos el permiso de eliminación en la tabla de destino para ejecutar este comando. También nos permite filtrar y eliminar cualquier registro específico usando el DÓNDE cláusula de la tabla.

Aclara que tenemos una copia de seguridad de nuestra base de datos antes de ejecutar este comando porque no podemos recuperar los registros eliminados usando esta consulta. Por lo tanto, la copias de seguridad de bases de datos nos permite restaurar los datos cuando los necesitemos en el futuro.

La siguiente sintaxis explica el comando DELETE para eliminar datos de la tabla:

 DELETE FROM table_name WHERE condition; 

¿Qué es un comando TRUNCAR?

La declaración truncada es una Comando DDL o lenguaje de definición de datos Se utiliza para eliminar datos completos de la tabla sin eliminar la estructura de la tabla. No podemos usar el DÓNDE cláusula con este comando, de modo que el filtrado de registros no sea posible. Después de ejecutar este comando, no se pueden revertir los datos eliminados porque el registro no se mantiene mientras se realiza esta operación.

El comando truncar desasigna el páginas en lugar de filas y crea una entrada para las páginas de desasignación en lugar de filas en los registros de transacciones. Este comando bloquea las páginas en lugar de las filas; por lo tanto, requiere menos bloqueos y recursos. Tenga en cuenta que no podemos utilizar la instrucción truncar cuando una clave externa hace referencia a una tabla o participa en una vista indexada.

mini barra de herramientas excel

La siguiente sintaxis explica el comando TRUNCATE para eliminar datos de la tabla:

 TRUNCATE TABLE table_name; 

Diferencias clave entre ELIMINAR y TRUNCAR

Los siguientes puntos explican las diferencias entre el comando eliminar y truncar:

  1. La declaración DELETE se usa cuando queremos eliminar algunos o todos los registros de la tabla, mientras que la declaración TRUNCATE eliminará filas enteras de una tabla.
  2. DELETE es un comando DML ya que solo modifica los datos de la tabla, mientras que TRUNCATE es un comando DDL.
  3. El comando DELETE puede filtrar el registro/tuplas utilizando la cláusula WHERE. Sin embargo, el comando TRUNCATE no permite utilizar DÓNDE cláusula, por lo que no podemos filtrar filas mientras truncamos.
  4. BORRAR activa todo eliminar desencadenantes sobre la mesa para disparar. Sin embargo, no se activa ningún activador en la operación de truncar porque no opera en filas individuales.
  5. DELETE realiza la eliminación fila por fila de la tabla, una a la vez, en el orden en que fueron procesadas. Sin embargo, TRUNCATE opera en páginas de datos en lugar de filas porque elimina datos completos de la tabla a la vez.
  6. La declaración DELETE solo elimina registros y no restablece el identidad de la mesa , mientras que TRUNCATE restablece la identidad de una tabla en particular.
  7. El comando DELETE requiere más bloqueos y recursos de base de datos porque adquiere el bloqueo en cada fila eliminada. Por el contrario, TRUNCATE adquiere el bloqueo en la página de datos antes de eliminar la página de datos; por tanto, requiere menos bloqueos y pocos recursos.
  8. La declaración DELETE hace una entrada en el registro de transacciones para cada fila eliminada, mientras que TRUNCATE registra el registro de transacciones para cada página de datos.
  9. El comando TRUNCATE es más rápido que el comando DELETE, ya que desasigna las páginas de datos en lugar de filas y registra páginas de datos en lugar de filas en los registros de transacciones.
  10. Una vez que el registro se elimina usando el comando TRUNCATE, no podemos recuperarlo. Por el contrario, podemos recuperar los datos eliminados que eliminamos de la operación ELIMINAR.

Cuadro comparativo DELETE vs. TRUNCATE

El siguiente cuadro comparativo explica sus principales diferencias de forma rápida:

Base de comparación BORRAR TRUNCAR
Definición La declaración de eliminación se utiliza para eliminar uno o varios registros de una tabla existente según la condición especificada. El comando truncar elimina los datos completos de una tabla existente pero no la tabla en sí. Conserva la estructura o esquema de la tabla.
Idioma Es un comando DML (lenguaje de manipulación de datos). Es un comando DDL (lenguaje de definición de datos).
DÓNDE Puede utilizar la cláusula WHERE para filtrar cualquier fila o datos específicos de la tabla. No utiliza la cláusula WHERE para filtrar registros de la tabla.
Permiso Necesitamos tener permiso DELETE para usar este comando. Necesitamos tener permiso ALTER para usar este comando.
Laboral Este comando elimina los registros uno por uno. Este comando elimina toda la página de datos que contiene los registros.
Cerrar Bloqueará la fila antes de eliminarla. Bloqueará la página de datos antes de eliminarla.
Identidad de la tabla Este comando no restablece la identidad de la tabla porque solo elimina los datos. Siempre restablece la identidad de la tabla.
Transacción Mantiene registros de transacciones para cada registro eliminado. No mantiene registros de transacciones para cada página de datos eliminada.
Velocidad Su velocidad es lenta porque mantuvo el tronco. Su ejecución es rápida porque elimina datos completos a la vez sin mantener registros de transacciones.
Desencadenar Este comando también puede activar el disparador aplicado en la mesa y hacer que se disparen. Este comando no activa los disparadores aplicados en la mesa para disparar.
Restaurar Nos permite restaurar los datos eliminados mediante la instrucción COMMIT o ROLLBACK. No podemos restaurar los datos eliminados después de ejecutar este comando.
Vista indexada Se puede utilizar con vistas indexadas. No se puede utilizar con vistas indexadas.
Espacio La declaración DELETE ocupa más espacio de transacción que truncar porque mantiene un registro para cada fila eliminada. La declaración TRUNCATE ocupa menos espacio de transacción porque mantiene un registro de transacciones para toda la página de datos en lugar de cada fila.

Conclusión

En este artículo, hemos hecho una comparación entre eliminar y truncar declaraciones. Hemos llegado a la conclusión de que se utiliza un comando DELETE cuando queremos personalizar la eliminación de registros de la tabla. Y un comando TRUNCATE se usa cuando no queremos dejar ningún registro o dato en la tabla, es decir, queremos vaciar la tabla.