DIFERENCIAS ENTRE DELETE TABLE , TRUNCATE TABLE y DROP TABLE

Diferencias entre DELETE, TRUNCATE y DROP TABLE en #SQLServer

Cuando manejamos una base de datos SQL, además de manejar creaciones de tablas (CREATE TABLE), inserciones (INSERT), consultas (SELECT) y actualizaciones (UPDATE); dentro de las operaciones básicas también tenemos las que implican borrado. Borrado de diferentes tipos: de filas que cumplan una serie de condiciones, de todos los datos de una tabla o de la tabla con su estructura. Veamos cada una de ellas, con su sintaxis y un ejemplo.

Manejamos para el ejemplo una tabla entradas, que trata sobre la entradas de un blog y que almacena básicamente la siguiente información: identificador, título, cuerpo y tiempo de salida.

  • La sentencia "truncate table" vacía la tabla (elimina todos los registros) y vuelve a crear la tabla con la misma estructura.
  • La diferencia con "drop table" es que esta sentencia borra la tabla, "truncate table" la vacía.
  • La diferencia con "delete" es la velocidad, es más rápido "truncate table" que "delete" (se nota cuando la cantidad de registros es muy grande) ya que éste borra los registros uno a uno pero no elimina indices ni los punteros de los autonumericos.

Otra diferencia es la siguiente: cuando la tabla tiene un campo "auto_increment", si borramos todos los registros con "delete" y luego ingresamos un registro, al cargarse el valor en el campo autoincrementable, continúa con la secuencia teniendo en cuenta el valor mayor que se había guardado; si usamos "truncate table" para borrar todos los registros, al ingresar otra vez un registro, la secuencia del campo autoincrementable vuelve a iniciarse en 1.


Por ejemplo, tenemos la tabla "Pacientes" con el campo "Código" definido "auto_increment", y el valor más alto de ese campo es "5", si borramos todos los registros con "delete" y luego ingresamos un registro sin valor de código, se guardará el valor "6"; si en cambio, vaciamos la tabla con "truncate table", al ingresar un nuevo registro sin valor para el código, iniciará la secuencia en 1 nuevamente.


Referencias

https://www.linuxhispano.net/2012/02/06/diferencia-entre-delete-truncate-y-drop-en-sql/

https://www.mundosql.eu/2016/02/10/diferencias-entre-delete-truncate-y-drop-table-en-sqlserver/

https://sql-listo.com/optimizacion/diferencia-entre-truncate-y-delete/

Comentarios

Entradas populares de este blog

¿Qué es la JCAHO Joint Commission on Accreditation of Healthcare Organizations?

PARSEO DEL CODIGO PDF417 DEL DNI ARGENTINO

¿Como instalar El Cliente de SOPHOS VPN ?