Tema SQL
TRUNCATE TABLE
Vaciado rápido de una tabla sin condición WHERE por fila; en muchos motores es DDL o tiene semántica distinta de DELETE masivo.
Descripción
TRUNCATE elimina todas las filas de forma eficiente y puede resetear contadores de identidad según motor. Suele no disparar triggers row-level como DELETE. Las FOREIGN KEY que referencian la tabla pueden impedir TRUNCATE hasta que se desactiven o borren dependencias. En entornos transaccionales, el bloqueo y la posibilidad de ROLLBACK dependen del producto. No uses TRUNCATE si necesitas borrar solo un subconjunto: ahí corresponde DELETE con WHERE.
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
TRUNCATE TABLE nombre_tabla;
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- TRUNCATE
- Operación masiva sobre toda la tabla; permisos suelen ser más estrictos que DELETE.
Ejemplos
Ejemplo 1
TRUNCATE TABLE logs_temporales;
Ejemplo 2
-- Verificar FK antes de TRUNCATE
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.