に最終更新
TRUNCATE-TABLE
説明
このステートメントは、指定したテーブルまたはパーティションのデータを消去するために使用します。
構文
TRUNCATE TABLE [<db_name>.]<table_name>[ PARTITION ( <partition_name1> [, <partition_name2> ... ] ) ];
必須パラメータ
1.<db_name>
データベースの識別子(名前)を指定します。
識別子はアルファベット(Unicode 名のサポートが有効な場合は、その言語の任意の文字)で始める必要があります。識別子全体をバッククォートで囲む場合(例:
My Database)を除き、空白や特殊文字は使用できません。予約語は識別子として使用できません。
詳細は「識別子の要件と予約語」を参照してください。
2.<table_name>
テーブルの識別子(名前)を指定します。識別子は、テーブルが属するデータベース内で一意である必要があります。
識別子はアルファベット(Unicode 名のサポートが有効な場合は、その言語の任意の文字)で始める必要があります。識別子全体をバッククォートで囲む場合(例:
My Object)を除き、空白や特殊文字は使用できません。予約語は識別子として使用できません。
詳細は「識別子の要件と予約語」を参照してください。
任意パラメータ
1.<partition_name>
パーティションの識別子(名前)を指定します。
識別子はアルファベット(Unicode 名のサポートが有効な場合は、その言語の任意の文字)で始める必要があります。識別子全体をバッククォートで囲む場合(例:
My Object)を除き、空白や特殊文字は使用できません。予約語は識別子として使用できません。
詳細は「識別子の要件と予約語」を参照してください。
必要な権限
この SQL コマンドを実行するユーザーには、少なくとも次の権限が必要です。
| 権限 | 対象 | 説明 |
|---|---|---|
| Drop_priv | テーブル | TRUNCATE TABLE はテーブルの DROP 操作に該当します |
使用上の注意
- このステートメントはデータを消去しますが、テーブルまたはパーティションは残します。
- DELETE とは異なり、指定したテーブルまたはパーティションのデータを全件消去することしかできず、フィルター条件は指定できません。
- DELETE とは異なり、この方法でデータを消去してもクエリのパフォーマンスには影響しません。
- この操作で削除したデータは復元できません。
- このコマンドを使用する際、テーブルの状態は NORMAL である必要があります。つまり、SCHEMA CHANGE などの操作中は使用できません。
- このコマンドにより、進行中のデータインポートが失敗する場合があります。
例
-
example_db のテーブル tbl のデータを消去します
TRUNCATE TABLE example_db.tbl; -
テーブル tbl のパーティション p1 と p2 のデータを消去します
TRUNCATE TABLE tbl PARTITION(p1, p2);