メインコンテンツまでスキップ

TRUNCATE-TABLE

説明

このステートメントは、指定されたテーブルとパーティションのデータをクリアするために使用されます。

構文

TRUNCATE TABLE [<db_name>.]<table_name>[ PARTITION ( <partition_name1> [, <partition_name2> ... ] ) ];

必須パラメータ

1.<db_name>

データベースの識別子(名前)を指定します。

識別子は英字(またはunicode名前サポートが有効な場合は指定された言語の任意の文字)で始まる必要があり、識別子文字列全体がバッククォートで囲まれていない限り(例:My Database)、スペースや特殊文字を含むことはできません。

識別子は予約キーワードを使用できません。

詳細については、Identifier RequirementsおよびReserved Keywordsを参照してください。

2.<table_name>

テーブル識別子(名前)を指定します。これは、配置されているデータベース内で一意である必要があります。

識別子は英字(またはunicode名前サポートが有効な場合は言語の任意の文字)で始まる必要があり、識別子文字列全体がバッククォートで囲まれていない限り(例:My Object)、スペースや特殊文字を含むことはできません。

識別子は予約キーワードを使用できません。

詳細については、Identifier RequirementsおよびReserved Keywordsを参照してください。

オプションパラメータ

1.<partition_name>

パーティションの識別子(名前)を指定します。

識別子は英字(またはunicode名前サポートが有効な場合はスクリプトの任意の文字)で始まる必要があり、識別子文字列全体がバッククォートで囲まれていない限り(例:My Object)、スペースや特殊文字を含むことはできません。

識別子は予約キーワードを使用できません。

詳細については、Identifier RequirementsおよびReserved Keywordsを参照してください。

アクセス制御要件

このSQLコマンドを実行するユーザーは、少なくとも以下の権限を持っている必要があります:

PrivilegeObjectNotes
Drop_privTableTRUNCATE TABLEはテーブルのDROP操作に属します

使用上の注意

  • このステートメントはデータをクリアしますが、テーブルまたはパーティションは保持されます。
  • DELETEとは異なり、このステートメントは指定されたテーブルまたはパーティション全体のみをクリアでき、フィルタリング条件を追加することはできません。
  • DELETEとは異なり、この方法でデータをクリアしてもクエリパフォーマンスに影響しません。
  • この操作によって削除されたデータは復元できません。
  • このコマンドを使用する場合、テーブルの状態はNORMALである必要があります。つまり、SCHEMA CHANGEなどの操作は許可されません。
  • このコマンドは、進行中のインポートを失敗させる可能性があります。

  1. example_db下のテーブルtblをクリアする

    TRUNCATE TABLE example_db.tbl;
  2. テーブル tbl の p1 および p2 パーティションをクリアする

    TRUNCATE TABLE tbl PARTITION(p1, p2);