TRUNCATE TABLE用于清空表数据或者表分区数据。

语法

  • 清空表数据。
    TRUNCATE TABLE db_name.table_name;               
  • 清空表中的指定分区。
    TRUNCATE TABLE db_name.table_name PARTITION partition_name[,...];               

    分区名的数据类型为bigint,您可以通过以下SQL获取某个表的所有分区名。

    SELECT partition_name from information_schema.partitions WHERE table_name = 'your_table_name' ORDER BY partition_name DESC LIMIT 100; 

注意事项

  • 执行TRUNCATE TABLE命令清空表中的数据,表结构不会被删除。
  • 数据库备份期间无法执行,执行TRUNCATE TABLE将会报错。
  • 当集群中有状态为运行中(RUNNING)的Build任务时,执行TRUNCATE TABLE将会报错,需要等Build任务完成后再重试。如何查看Build任务状态,请参见查看Build任务的状态

示例

  • 清空CUSTOMER表中的数据。
    TRUNCATE TABLE adb_demo.customer;                   
  • 清空表中的指定分区。
    TRUNCATE TABLE adb_demo.customer PARTITION 20170103,20170104,20170108;