清空表 (Truncate Table)
Truncate 允许删除表或数据库中的数据,同时保留它们的存在。这是一个轻量级操作,无法撤销。
TRUNCATE 语句
TRUNCATE TABLE
TRUNCATE TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]
删除表中的所有数据。当省略 IF EXISTS
子句时,如果表不存在,则查询返回错误。
TRUNCATE
查询不支持 View、File、URL、Buffer 和 Null 表引擎。
您可以使用 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
子句时,如果数据库不存在,则查询返回错误。