En SQL , la TRUNCATE TABLE
instrucción es una operación del lenguaje de manipulación de datos (DML) que elimina todas las filas de una tabla sin provocar una acción desencadenada. [1] El resultado de esta operación elimina rápidamente todos los datos de una tabla , generalmente omitiendo una serie de mecanismos de aplicación de integridad. Se introdujo oficialmente en el estándar SQL:2008 , como la característica opcional F200, "instrucción TRUNCATE TABLE".
TRUNCATE TABLE elimina todas las filas de una tabla, pero se conservan la estructura de la tabla y sus columnas, restricciones, índices, etc. Para eliminar la definición de la tabla además de sus datos, utilice la instrucción DROP TABLE .
El TRUNCATE TABLE mytable
enunciado es lógicamente (aunque no físicamente) equivalente al DELETE FROM mytable
enunciado (sin WHERE
cláusula). Las siguientes características lo TRUNCATE TABLE
distinguen DELETE
:
TRUNCATE
va precedido y seguido implícitamente por una operación de confirmación . (Esto también puede suceder en MySQL , cuando se utiliza un motor de almacenamiento transaccional).TRUNCATE TABLE
elimina rápidamente todos los registros de una tabla desasignando las páginas de datos utilizadas por la tabla. Esto reduce la sobrecarga de recursos que supone registrar las eliminaciones, así como la cantidad de bloqueos adquiridos. Los registros eliminados de esta manera no se pueden restaurar en una operación de reversión. Dos excepciones notables a esta regla son las implementaciones que se encuentran en PostgreSQL y Microsoft SQL Server , que permiten TRUNCATE TABLE
confirmar o revertir las sentencias de forma transaccional.WHERE
cláusula en una TRUNCATE TABLE
declaración.TRUNCATE TABLE
no se puede utilizar cuando una clave externa hace referencia a la tabla que se va a truncar, ya que TRUNCATE TABLE
las instrucciones no activan activadores . Esto podría generar datos inconsistentes porque los activadores ON DELETE
/ ON UPDATE
no se activarían.TRUNCATE TABLE
restablece el recuento de una columna de identidad a la semilla de la identidad .TRUNCATE TABLE
se pueden usar instrucciones para las tablas involucradas en el envío de registros . [2]