跳到主要内容
跳到主要内容
编辑此页

清空表 (Truncate Table)

Truncate 允许删除表或数据库中的数据,同时保留它们的存在。这是一个轻量级操作,无法撤销。

TRUNCATE 语句

TRUNCATE TABLE

TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]

删除表中的所有数据。当省略 IF EXISTS 子句时,如果表不存在,则查询返回错误。

TRUNCATE 查询不支持 ViewFileURLBufferNull 表引擎。

您可以使用 alter_sync 设置来设置等待在副本上执行的操作。

您可以使用 replication_wait_for_inactive_replica_timeout 设置来指定等待非活动副本执行 TRUNCATE 查询的时间(秒)。

注意

如果 alter_sync 设置为 2,并且某些副本的非活动时间超过了 replication_wait_for_inactive_replica_timeout 设置指定的时间,则会抛出异常 UNFINISHED

TRUNCATE ALL TABLES

TRUNCATE ALL TABLES FROM [IF EXISTS] db [ON CLUSTER cluster]

删除数据库中所有表的所有数据。

TRUNCATE DATABASE

TRUNCATE DATABASE [IF EXISTS] db [ON CLUSTER cluster]

删除数据库中的所有表,但保留数据库本身。当省略 IF EXISTS 子句时,如果数据库不存在,则查询返回错误。