En SQL , la TRUNCATE TABLEinstrucció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 mytableenunciado es lógicamente (aunque no físicamente) equivalente al DELETE FROM mytableenunciado (sin WHEREcláusula). Las siguientes características lo TRUNCATE TABLEdistinguen DELETE:
- En Oracle Database ,
TRUNCATEva 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). - Por lo general,
TRUNCATE TABLEelimina 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 permitenTRUNCATE TABLEconfirmar o revertir las sentencias de forma transaccional. - No es posible especificar una
WHEREcláusula en unaTRUNCATE TABLEdeclaración. TRUNCATE TABLENo se puede utilizar cuando una clave externa hace referencia a la tabla que se va a truncar, ya queTRUNCATE TABLElas instrucciones no activan activadores . Esto podría generar datos inconsistentes porque los activadoresON DELETE/ON UPDATEno se activarían.- En algunos sistemas informáticos,
TRUNCATE TABLErestablece el recuento de una columna de identidad a la semilla de la identidad . - En Microsoft SQL Server 2000 y versiones posteriores, en el modo de recuperación completa, se registra cada cambio en la base de datos, por lo que
TRUNCATE TABLEse pueden usar instrucciones para las tablas involucradas en el envío de registros . [2]
Referencias
- ^ "ISO/IEC 9075 Lenguajes de bases de datos SQL". iso.org . Consultado el 4 de junio de 2023 .
- ^ "Descripción de los efectos de las operaciones no registradas y mínimamente registradas en la copia de seguridad del registro de transacciones y el proceso de restauración en SQL Server". Microsoft. Diciembre de 2005.