Desglosemos la diferencia entre los comandos Truncate y Eliminar en SQL.
Comando sql truncate
El comando truncado en SQL se conoce como lenguaje de definición de datos. Los comandos truncados eliminan los datos de una tabla mientras preservan la estructura de la tabla. A diferencia del comando eliminar, no puede filtrar registros específicos utilizando la cláusula WHERE.
Del mismo modo, no podemos realizar una reversión después de ejecutar los comandos truncados, ya que no se conservan registros para este comando.
Nota: Algunos motores de base de datos admiten reversiones para comandos truncados, pero esto no es universal.
Si una tabla forma parte de una vista indexada o referenciada por una clave extranjera, el comando truncado no funcionará en esa tabla.
La sintaxis del comando es como se muestra:
TABLA TABLA TRUCATE_NAME;El comando truncate es más rápido que eliminar, ya que no realiza un escaneo para los registros antes de eliminar. También garantiza que toda la tabla esté bloqueada antes de eliminar los datos, reduciendo así el espacio de transacciones.
Dependiendo del motor de la base de datos, necesita permisos explícitos para realizar una operación truncada en una tabla. Por ejemplo, en SQL Server, necesita el permiso de la tabla alter. MySQL requiere permiso de caída, PostgreSQL requiere un permiso truncado, y Oracle requiere la caída de cualquier permiso de tabla.
Comando SQL Eliminar
El comando Eliminar es un comando de manipulación de datos. Le permite eliminar registros de una tabla de base de datos y devuelve el número de registros eliminados. Los comandos Eliminar eliminar las filas de una tabla y no la tabla completa de la base de datos.
A diferencia del comando Truncate, el comando Eliminar le permite filtrar los registros de destino utilizando la cláusula WHERE.
La sintaxis del comando se muestra a continuación:
Eliminar de table_name;Para filtrar para registros específicos, puede usar la sintaxis como se muestra a continuación:
Eliminar de table_name donde condición;Nota: Si no especifica las columnas de destino, el comando eliminará todos los registros de la tabla dada.
A diferencia del comando truncado, que bloquea toda la tabla, el comando Elete bloquea filas individuales que conducen a un espacio de transacción más alto, especialmente en una tabla grande.
Para ejecutar un comando eliminar en una tabla, necesita el permiso de eliminación.
Tabla de resumen
La siguiente tabla resume las diferencias entre los comandos SQL Delete y Truncate.
Sql truncar | SQL Eliminar | |
---|---|---|
Tipo | Lenguaje de definición de datos | Lenguaje de manipulación de datos |
Tipo de bloqueo | Mesa | Fila |
Retroceder | Algunos motores de base de datos | Sí |
Registros de transacciones | Mesa entera | Por fila |
Uso del espacio de transacción | Menos | Más alto |
Soporte de activación | No | Sí |
Velocidad | Muy rapido | Lento |
Tipo de eliminación | Todas las filas | Todas o filas específicas (como se especifica) |
Funciona con una vista indexada? | No | Sí |
Restablecimiento de columna de identidad | Algunos motores de base de datos | No |
RECUSHAS REGISTROS eliminados? | No | Sí |
En la mayoría de los casos, elegir el mejor tipo de operación dependerá de sus necesidades específicas. Sin embargo, considere los siguientes puntos:
Conclusión
Este artículo analiza dos comandos fundamentales para eliminar los datos en una base de datos SQL. Usando esta guía, puede especificar explícitamente qué hace el comando truncar o el comando Eliminar en una base de datos relacional. Esperamos que hayas encontrado este artículo útil. Consulte los otros artículos de Sugerencia de Linux para obtener más consejos y tutoriales.