TRUNCATE

Name

TRUNCATE -- 清空一个或者一堆表

Synopsis

TRUNCATE [ TABLE ] name [, ...]
 

描述

TRUNCATE 快速地从一堆表中删除所有行。它和在每个表上进行无条件的 DELETE 有同样的效果,不过因为它不做表扫描,因而快得多。 在大表上最有用。

参数

name

要清空的表名字(可以有模式修饰)。

注意

只有表的所有者可以 TRUNCATE 它。

如果从其它表有到某个表的外键引用,那么就不能使用 TRUNCATE。 除非这些表在同一个命令中也被截断。 在这种情况下检查有效性要求进行表扫描,而 TRUNCATE 的概念是不做这样的事情。 (译注:意味着你有必要这么用么?)

TRUNCATE 不会运行任何在该表上存在的 ON DELETE 触发器。

例子

截断表 bigtablefattable

TRUNCATE TABLE bigtable, fattable;

兼容性

SQL 标准里没有 TRUNCATE