· Andrés Ledo · MySQL · Lectura en 4 min
Cómo usar el comando TRUNCATE TABLE en MySQL
¿Listo para dominar el comando TRUNCATE en MySQL? ¡Esta guía exclusiva te brinda todos los detalles, tips y precauciones para convertirte en un experto!
El comando TRUNCATE TABLE en MySQL es una forma rápida y eficiente de eliminar todos los datos de una tabla. En este artículo, te explicaré qué es el comando TRUNCATE TABLE, cómo funciona, cuáles son sus ventajas y desventajas, y cómo usarlo con ejemplos prácticos.
Índice
- ¿Qué es el comando TRUNCATE TABLE?
- ¿Cómo funciona el comando TRUNCATE TABLE?
- ¿Cuáles son las ventajas y desventajas del comando TRUNCATE TABLE?
- ¿Cómo usar el comando TRUNCATE TABLE con ejemplos prácticos?
¿Qué es el comando TRUNCATE TABLE?
El comando TRUNCATE TABLE es una sentencia SQL que permite borrar todos los datos de una tabla. Lógicamente, el comando TRUNCATE TABLE es similar a un comando DELETE sin una cláusula WHERE que elimina todas las filas de una tabla, o a una secuencia de comandos DROP TABLE y CREATE TABLE.
Sin embargo, el comando TRUNCATE TABLE es más eficiente que el comando DELETE porque elimina y recrea la tabla en lugar de borrar las filas una por una. Esto hace que el comando TRUNCATE TABLE sea más rápido y consuma menos recursos.
Aquí está la sintaxis básica del comando TRUNCATE TABLE:
TRUNCATE [TABLE] nombre_de_tabla;
En esta sintaxis, se especifica el nombre de la tabla de la que se quiere eliminar todos los datos después de las palabras clave TRUNCATE TABLE. La palabra clave TABLE es opcional, pero es una buena práctica usarla para distinguir entre el comando TRUNCATE TABLE y la función TRUNCATE().
¿Cómo funciona el comando TRUNCATE TABLE?
El comando TRUNCATE TABLE funciona de la siguiente manera:
Primero, verifica si hay alguna restricción de clave externa (FOREIGN KEY) desde otras tablas que hagan referencia a la tabla que se quiere truncar. Si hay alguna, el comando TRUNCATE TABLE fallará y devolverá un error.
Segundo, elimina la tabla y libera el espacio ocupado por los datos y los índices.
Tercero, crea una nueva tabla con la misma estructura y definición que la tabla original.
Cuarto, restablece el valor en la columna AUTO_INCREMENT a su valor inicial si la tabla tiene una columna AUTO_INCREMENT.
Quinto, devuelve un mensaje indicando que la operación se ha completado con éxito.
El comando TRUNCATE TABLE no dispara los disparadores (triggers) asociados a la tabla que se está truncando. Además, el número de filas afectadas por el comando TRUNCATE TABLE es 0, lo que debe interpretarse como ninguna información.
¿Cuáles son las ventajas y desventajas del comando TRUNCATE TABLE?
El comando TRUNCATE TABLE tiene algunas ventajas y desventajas que hay que tener en cuenta antes de usarlo. A continuación, se enumeran algunas de ellas:
Ventajas
Es más rápido y eficiente que el comando DELETE porque elimina y recrea la tabla en lugar de borrar las filas una por una.
Libera el espacio ocupado por los datos y los índices de forma inmediata.
Restablece el valor en la columna AUTO_INCREMENT a su valor inicial si la tabla tiene una columna AUTO_INCREMENT.
Desventajas
No se puede usar con tablas que tengan restricciones de clave externa (FOREIGN KEY) desde otras tablas.
No se puede deshacer (rollback) porque causa un compromiso implícito (implicit commit).
No dispara los disparadores (triggers) asociados a la tabla que se está truncando.
No devuelve el número de filas afectadas por la operación.
¿Cómo usar el comando TRUNCATE TABLE con ejemplos prácticos?
Para ilustrar cómo usar el comando TRUNCATE TABLE con ejemplos prácticos, vamos a crear una nueva tabla llamada libros para la demostración:
CREATE TABLE libros (
id INT AUTO_INCREMENT PRIMARY KEY,
titulo VARCHAR(255) NOT NULL
) ENGINE = INNODB;
A continuación, vamos a insertar algunos datos ficticios en la tabla libros usando el siguiente procedimiento almacenado:
DELIMITER $$
CREATE PROCEDURE cargar_datos_libros(IN num INT(4))
BEGIN
DECLARE contador INT(4) DEFAULT 0;
DECLARE titulo_libro VARCHAR(255) DEFAULT '';
WHILE contador < num DO
SET titulo_libro = CONCAT('Título del libro #', contador);
SET contador = contador + 1;
INSERT INTO libros (titulo) VALUES (titulo_libro);
END WHILE;
END $$
DELIMITER ;
Luego, vamos a cargar 10.000 filas en la tabla libros. Esto puede tardar un poco.
CALL cargar_datos_libros(10000);
Después, vamos a comprobar los datos en la tabla libros:
SELECT * FROM libros;
Finalmente, vamos a usar el comando TRUNCATE TABLE para eliminar todos los datos de la tabla libros:
TRUNCATE TABLE libros;
Si volvemos a consultar la tabla libros, veremos que está vacía y que el valor de la columna AUTO_INCREMENT se ha restablecido a 1.
En este artículo, te he explicado qué es el comando TRUNCATE TABLE en MySQL, cómo funciona, cuáles son sus ventajas y desventajas, y cómo usarlo con ejemplos prácticos. Espero que te haya sido útil y que hayas aprendido algo nuevo.
Si te ha gustado este artículo, compártelo con tus amigos y déjame un comentario. También puedes suscribirte a mi blog para recibir más artículos sobre MySQL y otros temas relacionados con el desarrollo web.
Articulos relacionados:
Este artículo forma parte del tutorial de MySQL.
- Tipos de datos MySQL
- Sintaxis para crear una tabla en MySQL
- INSERT MySQL
- Comando SELECT MySQL
- MySQL Like
- COUNT MySQL ejemplos
- Suma MySQL
- Crear indices en MySQL
- Crear vistas en MySQL
- LIMIT en sql
- UPDATE en MySQL
- Borrar base de datos MySQL
- Insert or UPDATE MySQL
- MySQL Truncate
- Listar bases de datos MySQL
- Eliminar registros base de datos MySQL