Resumen: en este tutorial, aprenderá a utilizar la sentencia MySQL TRUNCATE TABLE
para eliminar todos los datos de una tabla.
Introducción a la sentencia TRUNCATE TABLE de MySQL
La sentencia TRUNCATE TABLE
de MySQL permite borrar todos los datos de una tabla.
Lógicamente, la sentencia TRUNCATE TABLE
es como una sentencia DELETE
sin cláusula WHERE
que borra todas las filas de una tabla, o una secuencia de sentencias DROP TABLE
y CREATE TABLE
.
Sin embargo, la sentencia TRUNCATE TABLE
es más eficiente que la sentencia DELETE
porque elimina y vuelve a crear la tabla en lugar de eliminar las filas una por una.
Aquí está la sintaxis básica de la sentencia TRUNCATE TABLE
:
Code language: SQL (Structured Query Language) (sql)
En esta sintaxis, se especifica el nombre de la tabla que se desea eliminar todos los datos después de las palabras clave TRUNCATE TABLE
.
La palabra clave TABLE
es opcional. Sin embargo, es una buena práctica utilizar la palabra clave TABLE
para distinguir entre la sentencia TRUNCATE TABLE
y la función TRUNCATE()
.
Si hay alguna restricción FOREIGN KEY
de otras tablas que hagan referencia a la tabla que se trunca, la sentencia TRUNCATE TABLE
fallará.
Debido a que una operación de truncamiento causa un commit implícito, por lo tanto, no se puede revertir.
La sentencia TRUNCATE TABLE
restablece el valor de la columna AUTO_INCREMENTO a su valor inicial si la tabla tiene una columna AUTO_INCREMENT
.
La sentencia TRUNCATE TABLE
no dispara triggers DELETE
asociados a la tabla que se está truncando.
A diferencia de una sentencia DELETE
, el número de filas afectadas por la sentencia TRUNCATE TABLE
es 0, lo que debe interpretarse como que no hay información.
Ejemplo de TRUNCATE TABLE de MySQL
Vamos a tomar un ejemplo de uso de la sentencia TRUNCATE TABLE
.
Primero, cree una nueva tabla llamada books
para la demostración:
Code language: SQL (Structured Query Language) (sql)
A continuación, inserte datos ficticios en la tabla books
utilizando el siguiente procedimiento almacenado:
Code language: SQL (Structured Query Language) (sql)
A continuación, cargue 10.000 filas en la tabla books
. Tardará un rato.
Code language: SQL (Structured Query Language) (sql)
Después, compruebe los datos de la tabla books
:
Code language: SQL (Structured Query Language) (sql)
Por último, utilice la sentencia TRUNCATE TABLE
para eliminar todas las filas de la tabla books
:
Code language: SQL (Structured Query Language) (sql)
Note que puede comparar el rendimiento entre la sentencia TRUNCATE TABLE
con la sentencia DELETE
.
En este tutorial, ha aprendido a utilizar la sentencia MySQL TRUNCATE TABLE
para eliminar todos los datos de una tabla de manera eficiente, especialmente para una tabla grande.
- ¿Ha sido útil este tutorial?
- SíNo