Declaración TRUNCATE TABLE de MySQL
La sentencia `TRUNCATE TABLE` de MySQL se utiliza para eliminar todas las filas de una tabla, devolviéndola a su estado vacío. A diferencia de `DELETE`, realiza esta operación rápidamente al eliminar las páginas de datos utilizadas por la tabla.
Utilización
La sentencia `TRUNCATE TABLE` se utiliza cuando necesitas eliminar rápidamente todos los datos de una tabla sin registrar las eliminaciones de filas individuales. Suele emplearse durante el desarrollo o al restablecer tablas para entornos de prueba.
TRUNCATE TABLE table_name;
En esta sintaxis, `TRUNCATE TABLA nombre_tabla` especifica la tabla de la que se eliminarán todas las filas. Ten en cuenta que `TRUNCATE TABLE` es una operación del Lenguaje de Definición de Datos (DDL) y compromete implícitamente la transacción, lo que significa que sus efectos son inmediatos y no pueden revertirse si no es dentro de una transacción.
Ejemplos
1. Truncado básico
TRUNCATE TABLE employees;
Este ejemplo elimina todas las entradas de la tabla `empleados`, dejándola vacía.
2. Truncar con comprobaciones de claves externas desactivadas
SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE orders;
SET FOREIGN_KEY_CHECKS = 1;
Aquí, las comprobaciones de claves externas se desactivan temporalmente para truncar la tabla "Pedidos", que podría tener dependencias.
3. Truncar y reiniciar el incremento automático
TRUNCATE TABLE logs;
Al truncar la tabla `logs` no sólo se eliminan todas las filas, sino que también se restablecen los contadores de autoincremento a sus valores iniciales.
Consejos y buenas prácticas
- Utilízalo con precaución. No se puede deshacer `TRUNCATE TABLE` si no está dentro de una transacción; asegúrate de que quieres borrar permanentemente todos los datos.
- Considera las claves externas. Desactiva temporalmente las comprobaciones de clave ajena si es necesario al truncar tablas con dependencias.
- Restablece los datos de forma efectiva. Utiliza este comando para restablecer rápidamente los datos en entornos de prueba o desarrollo en lugar de utilizar `DELETE`.
- Cuidado con los permisos. Asegúrate de que tienes los permisos necesarios, ya que `TRUNCATE TABLE` requiere privilegios `DROP` en la tabla.
- Los activadores no se activan. A diferencia de `DELETE`, `TRUNCATE TABLE` no activa disparadores, lo que puede ser una consideración importante en tus operaciones con la base de datos.
- Impacto en los índices. Al truncar una tabla también se eliminarán y volverán a crear índices, lo que puede suponer mejoras de rendimiento al restablecer tablas grandes.