Saltar al contenido principal
Documentos
FuncionesExpresionesKeywordsDeclaracionesCláusulas

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.

Perfeccionamiento de SQL para principiantes

Adquiere los conocimientos de SQL para interactuar con tus datos y consultarlos.
Empieza a aprender gratis