> Faqs > Sentencia SQL para vaciar una tabla

Sentencia SQL para vaciar una tabla

Quiero eliminar todos los registros que hay en una tabla en una base de datos MySQL. Deseo que la tabla quede vacía de todo.

Respuestas

Pues podrías hacer dos cosas, siempre desde el lenguaje SQL. Indico la sintaxis para una base de datos MySQL, aunque no será muy distinto para otros sistemas gestores de base de datos.

Primero una sentencia que borra todos los datos de una tabla:

<span class="codigo"> delete from nombretabla where 1 </span>

Esto elimina todos los datos de la tabla, simplemente borrando todos los registros.

Otra posibilidad es:

<span class="codigo"> truncate nombretabla </span>

Esto vacía la tabla y el efecto es parecido a hacer un delete de todos los registros. La diferencia entre el delete y el truncate es que con truncate se inicializa todo lo que había en la tabla.

Por ejemplo, imaginemos que tenemos una tabla de usuarios y que tenemos hasta 100 usuarios y un campo autonumérico que se llama id_usuario. Si íbamos por el usuario 100, un posible nuevo usuario sería el insertado como id 101.

Imaginemos que estamos en el punto en el que teníamos 100 usuarios y entonces hacemos un delete de todos los registros, con la sentencia delete. Entonces se borrarán todos los registros, pero si insertamos un nuevo registro, este se insertará con el id 101.

Ahora bien, imaginemos que estamos en el mismo punto en el que tenemos 100 usuarios y luego hacemos un truncate en lugar de un delete y borramos todos los registros. Entonces, si insertamos un registro nuevo cuando la tabla se ha vaciado con un truncate, el registro entrará con id 1.

Miguel Angel