Tabla SQL TRUNCATE: Tutorial y explicación

Rodrigo Ricardo Publicado el 14 noviembre, 2020 3 minutos y 35 segundos de lectura

TRUNCATE SQL

SQL TRUNCATE se utiliza para eliminar todas las filas de una tabla. La instrucción TRUNCATE es una versión de DELETE que no usa una cláusula WHERE. Puede ser mejor que eliminar y volver a agregar la tabla a través de SQL. TRUNCATE básicamente realiza una eliminación y una nueva adición de la tabla, que es más rápido que eliminar los datos fila por fila.

El comando no se puede deshacer (¡no se puede deshacer!); no funcionará si otra tabla está bloqueada (en uso por otra persona o programa), o si hay otras tablas que hacen referencia a la tabla actual.

Diferencia entre DELETE y TRUNCATE

La instrucción DELETE solo eliminará filas según una condición determinada en una cláusula WHERE de SQL (o todas las filas si omite el WHERE), pero no libera el espacio que dejó la tabla. Esto conduce a archivos hinchados y potencialmente ENORMES.

Otra característica importante de TRUNCATE es que restablecerá los campos de valor numerados automáticamente / secuenciales. Por ejemplo, si tiene una clave principal que crece de forma incremental en 1 cada vez que se crea un registro, la función TRUNCATE restablecerá todo; el primer registro nuevo ingresado en la tabla será un 1.

Diferencia entre DROP y TRUNCATE

El comando DROP elimina la tabla de la base de datos; se ha ido para siempre y no se puede recuperar. TRUNCATE, por otro lado, borra todas las filas pero mantiene la tabla y todas sus configuraciones. Esto significa que se conservan los índices, los privilegios de acceso, las restricciones de integridad (por ejemplo, las ID de los empleados deben ser números) y las relaciones con otras tablas.

TRUNCATE no solo elimina todas las filas de la tabla, sino que libera espacio para otros usos. Sin embargo, algunas bases de datos permiten que el administrador decida si conservar este espacio o liberarlo. (Vea el ejemplo de Oracle en esta lección).

SQL TRUNCATE en acción

La tabla de figuras antes de truncar muestra una pequeña tabla de muestra antes de ejecutar el comando TRUNCATE. Tenga en cuenta el ID de la columna : se numera automáticamente del 1 al 4.

tabla antes de truncar
tabla antes de truncar

Después del comando TRUNCATE, la tabla se parecerá a la tabla de figuras después de truncar : La numeración automática se reinicia en 1.

tabla después de truncar
tabla después de truncar

Los siguientes ejemplos muestran cómo utilizar TRUNCATE en los principales sistemas de gestión de bases de datos: Oracle, SQL Server y MySQL. Cada ejemplo de código elimina todos los datos de la tabla Expired_Credentials en la base de datos de empleados.

Oráculo

La siguiente declaración elimina todas las filas de la tabla y devuelve el espacio a la base de datos.

TRUNCATE TABLE expired_credentials

Para las opciones avanzadas del administrador de la base de datos, se pueden utilizar parámetros adicionales para mantener el espacio eliminado asignado a la tabla. Esto es útil si va a querer mantener el espacio de la base de datos para una futura expansión de la tabla: tal vez la tabla expired_credentials se trunca al final del año y luego se llena de nuevo durante el transcurso de las transacciones comerciales.

El parámetro REUSE STORAGE conserva el espacio.

TRUNCATE expired_credentials REUTILIZAR ALMACENAMIENTO

SQL Server (Transact-SQL)

SQL Server requiere que el nombre de la base de datos sea el prefijo del nombre de la tabla:

TRUNCATE TABLE Employees.Expired_Credentials;

MySQL

La sintaxis del servidor MySQL es:

TRUNCATE TABLE expired_credentials

Resumen de la lección

La palabra clave SQL TRUNCATE es muy parecida a la instrucción DELETE, excepto que es mucho más rápida y no es necesario realizarla fila por fila. El comando actúa más como una combinación de DROP y CREATE, sin tener que volver a agregar todas las configuraciones, relaciones, permisos de acceso, etc. de la tabla. Además, la instrucción TRUNCATE libera el espacio ocupado por las filas eliminadas, lo que ayuda al administrador de la base de datos. Controle el tamaño de la base de datos. Finalmente, se proporcionaron algunos ejemplos de diferentes sistemas de gestión de bases de datos.

Explora más sobre este tema

Selecciona un tema y sigue aprendiendo...

Rodrigo Ricardo
Rodrigo Ricardo Editor y fundador