Curso de SQL en MySQL, Capítulo 8: En este capítulo aprenderás a eliminar filas a las tablas en MySQL con la sentencia DELETE.
DELETE
Para eliminar un registro de la tabla utilizamos la sentencia DELETE FROM.
La primera forma, la cual eliminara todos los registros de la tabla:
DELETE FROM tabla;
La segunda forma es agregando la cláusula WHERE para filtrar y solo eliminar algunos registros:
DELETE FROM tabla WHERE columna1=valor1;
TRUNCATE TABLE
Cuando queremos eliminar todos los registros de una tabla podemos utilizar la sentencia TRUNCATE TABLE:
TRUNCATE TABLE tabla;
Al vaciar la tabla y está relacionada con otra nos puede enviar un mensaje de error ya que no se podra eliminar teniendo relación , en caso de que aun así quieramos vaciar la tabla podemos quitar las retricciones temporalmente con la siguiente sentencia:
-- No comprobar restricciones de clave externa SET FOREIGN_KEY_CHECKS = 0; //Vaciamos tabla TRUNCATE TABLE tabla; -- Especificar para comprobar restricciones de clave externa (este es el valor por defecto) SET FOREIGN_KEY_CHECKS = 1;
Diferencia entre DELETE FROM y TRUNCATE TABLE
La diferencia entre DELETE FROM y TRUNCATE TABLE es que a primera elimina los registros pero si la tabla tiene algún indice autoincremental este se mantiene en el ultimo asignado y en truncate table ademas de eliminar todos los registros inicializa el indice autoincremental.
Tutorial en Vídeo: