Repaso
English
Bases de datos y SQLIntermedioDB-41

¿Cuál es la diferencia entre DELETE, TRUNCATE y DROP?

Opciones

  1. Son comandos idénticos y solo cambian sus nombres
  2. DELETE quita las filas elegidas; TRUNCATE todas las filas; DROP la tabla (Opción correcta)
  3. DROP quita solo una fila de la tabla indicada
  4. TRUNCATE elimina toda la base de datos, no solo una tabla

Respuesta

DELETE quita las filas elegidas (admite WHERE, registra cada fila); TRUNCATE quita rápidamente todas las filas pero conserva la tabla; DROP elimina toda la tabla y su estructura

Por qué

  • DELETE FROM t WHERE ...: quita las filas que elijas. Se puede deshacer en una transacción, dispara triggers y es más lento en tablas grandes.
  • TRUNCATE TABLE t: vacía la tabla muy rápido (sin WHERE), reinicia los contadores autoincrementales; en muchas bases de datos es DDL y es más difícil de deshacer.
  • DROP TABLE t: elimina la propia tabla, con su estructura, índices y datos.

Prueba siempre las sentencias destructivas dentro de una transacción o en una copia.

Recuerda

DELETE algunas filas, TRUNCATE todas las filas, DROP la tabla.

Términos clave

Practica esta pregunta en Repaso