Si queremos eliminar todos los registros de una tabla en MySql tenemos dos opciones, la primera es tan solo utilizar nuestra sentencia “DELETE” de siempre solo que sin ningún “WHERE”, haciendo que se borren todos los datos de la tabla:
DELETE FROM mi_tabla
Pero también podemos optar por la alternativa que es mediante la declaración “TRUNCATE TABLE” de la siguiente forma:
TRUNCATE TABLE mi_tabla
Al final básicamente funcionan igual, ya que cumplen su cometido que es eliminar todos los registros de determinada tabla, pero tienen ligeras diferencias:
Para empezar la opción con DELETE devuelve el número de registros que fueron borrados, mientras que TRUNCATE TABLE no devuelve nada.
Por otro lado TRUNCATE TABLE lo que hace en realidad es destruir la tabla y volverla a crear y no eliminar cada uno de los registros y puesto que eliminar y crear la tabla es mucho más rápido que eliminar todos los registros TRUNCATE TABLE puede ser una buena opción cuando se desea más velocidad en este proceso.
Otra diferencia importante tiene que ver con la misma característica de TRUNCATE TABLE de destruir y volver a crear la tabla, y es que reinicia todos los valores AUTO_INCREMENT de la tabla, es decir que si ibamos en el registro 5000, y usamos TRUNCATE TABLE al insertar un nuevo registro este volvería a ser el 1, mientras que en caso de usar DELETE FROM el AUTO_INCREMENT se conservaría intacto por lo que nuestro nuevo registro sería el número 5001 a pesar de ser el primero.
Así que depende de tus necesidades el cual utilizar.



Autor: Roberto Briones Argüelles
Publicado en: Jueves 18 noviembre 2010
Posted in
Tags:
Buena noche.
Otro dato a agregar es que una sentencia TRUNCATE no dispara los TRIGGERS, mientras DELETE si.
Leyendo encontré tambien que DELETE puede ser deshecho con ROLLBACK (o que no se ejecuta hasta un COMMIT que se yo!) y TRUNCATE no.
Y por último que DELETE es DML y TRUNCATE es DD.
Hola, Muchas Gracias, Venia Tiempo Buscándolo.
Saludos,
porfavor quisiera que me ayuden a programar un boton con la cual pueda borrar los registro de un formulario pero tambien el de la tabla e estado intentando muchas maneras y no he podido. estoy trabajando con visualfoxpro 9.0 he estado intentando con estos pseudocodigos:
SELECT 1
DELETE
*PACK
thisform.command6.click
thisform.text1.setfocus
thisform.Refresh
ayudenme porfavor quisiera ue me ayuden ya que soy nuevo en esto ok gracias….
envianme a mi correo si alguien me quiere ayudar en el comentario anterior (trust_esteban9999@hotmail.com) …
si no fuera mucho pedir me podrian decir a que pagina me puedo inscribir para con versar con los expertos en informatica e intertcambiar opiniones …. gracias