TRUNCATE TABLE
statement is a data manipulation language (DML) operation that deletes all rows of a table without causing a triggered action. The result of this operation quickly removes all data from a table, typically bypassing a number of integrity enforcing mechanisms. It was officially introduced in the SQL:2008 standard, as the optional feature F200, "TRUNCATE TABLE statement".
Behavior
TRUNCATE TABLE removes all rows from a table, but the table structure and its columns, constraints, indexes, and so on remain. To remove the table definition in addition to its data, use the DROP TABLE statement. TheTRUNCATE TABLE mytable
statement is logically (though not physically) equivalent to the DELETE FROM mytable
statement (without a WHERE
clause). The following characteristics distinguish TRUNCATE TABLE
from DELETE
:
* In the Oracle Database, TRUNCATE
is implicitly preceded and followed by a commit operation. (This may also be the case in TRUNCATE TABLE
quickly deletes all records in a table by deallocating the data pages used by the table. This reduces the resource overhead of TRUNCATE TABLE
statements to be committed or rolled back transactionally.
* It is not possible to specify a WHERE
clause in a TRUNCATE TABLE
statement.
* TRUNCATE TABLE
cannot be used when a foreign key references the table to be truncated, since TRUNCATE TABLE
statements do not fire triggers. This could result in inconsistent data because ON DELETE
/ON UPDATE
triggers would not fire.
* In some computer systems, TRUNCATE TABLE
resets the count of an Identity column back to the identity's ''seed''.
DML/DDL
The SQL standard classifies TRUNCATE as a ''data change statement'', synonymous with data manipulation (DML). This aligns with TRUNCATE being logically equivalent to an unconstrained DELETE operation. However, some documents describe TRUNCATE as a data definition language (DDL) operation, because TRUNCATE may be seen as a combined DROP+CREATE operation.For example, MySQL's documentation classifies TRUNCATE as a DDL statement:References
SQL keywords {{compu-lang-stub