全部產品
Search
文件中心

MaxCompute:TRUNCATE

更新時間:Jun 19, 2024

將指定表中的資料清空。

清空非分區表裡的資料

將指定的非分區表中的資料清空。如果您需要清空分區表中單個或多個分區的資料,請參見清空分區資料

  • 命令格式
    truncate table <table_name>;
  • 參數說明

    table_name:必填。待清空資料的非分區表的名稱。

清空分區資料

清空分區表中指定分區的資料。

MaxCompute支援通過條件式篩選方式清空分區資料。如果您希望一次性刪除符合某個規則條件的一個或多個分區,可以使用運算式指定篩選條件,通過篩選條件匹配分區並批量清空分區資料。

  • 命令格式
    • 未指定篩選條件
      truncate table <table_name> partition <pt_spec>[, partition <pt_spec>....];
    • 指定篩選條件
      truncate table <table_name> partition <partition_filtercondition>;
  • 參數說明
    • table_name:必填。待清空分區資料的分區表名稱。
    • pt_spec:必填。待清空資料的分區。格式為(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...)partition_col是分區欄位,partition_col_value是分區值。分區欄位不區分大小寫,分區值區分大小寫。
    • partition_filtercondition:指定篩選條件時必填。分區篩選條件,不區分大小寫。格式為:
      partition_filtercondition
          : partition (<partition_col> <relational_operators> <partition_col_value>)
          | partition (scalar(<partition_col>) <relational_operators> <partition_col_value>)
          | partition (<partition_filtercondition1> AND|OR <partition_filtercondition2>)
          | partition (NOT <partition_filtercondition>)
          | partition (<partition_filtercondition1>)[,partition (<partition_filtercondition2>), ...]
      • partition_col:分區名稱。
      • relational_operators:關係運算子,詳情請參見運算子
      • partition_col_value:分區列比較值或Regex,與分區列資料類型保持一致。
      • scalar():Scalar函數。Scalar函數基於輸入值產生對應的標量,對分區列的值(partition_col)進行處理後再按照指定的關係運算子relational_operatorspartition_col_value做比較。
      • 分區過濾條件支援邏輯運算子NOT、AND和OR。支援通過NOT過濾條件子句,取過濾規則的補集。支援多個過濾條件子句以AND或OR的關係組成整體分區匹配規則。
      • 支援多個分區過濾子句,當多個分區過濾子句以英文逗號(,)分隔時,每個過濾子句的邏輯以OR的關係組成整體分區匹配規則。
  • 使用樣本
    • 未指定篩選條件
      --從表sale_detail中清空一個分區,清空2013年12月杭州地區的銷售記錄。
      truncate table sale_detail partition(sale_date='201312',region='hangzhou'); 
      --從表sale_detail中同時清空兩個分區,清空2013年12月杭州和上海地區的銷售記錄。
      truncate table sale_detail partition(sale_date='201312',region='hangzhou'),  partition(sale_date='201312',region='shanghai');
    • 指定篩選條件
      --從表sale_detail中清空多個分區,清空杭州地區下sale_date以2013開頭的銷售記錄。
      truncate table sale_detail partition(sale_date like '2013%' and region='hangzhou');

相關命令

  • CREATE TABLE:建立非分區表、分區表、外部表格或聚簇表。
  • ALTER TABLE:修改表操作。
  • DROP TABLE:刪除分區表或非分區表。
  • DESC TABLE/VIEW:查看MaxCompute內部表、視圖、物化視圖、外部表格、聚簇表或Transactional表的資訊。
  • SHOW:查看錶的SQL DDL語句、列出專案下所有的表和視圖或列出一張表中的所有分區。