TRUNCATE quickly removes all rows from a table. It has the same effect as an unqualified DELETE but since it does not actually scan the table it is faster. This is most useful on large tables.
TRUNCATE cannot be executed inside a transaction block (BEGIN/COMMIT pair), because there is no way to roll it back.
There is an limitation of the TRUNCATE command (in contrast to an unqualified DELETE):
Tables which are referenced by another table (via foreign key contraint) can not be emtied.