メインコンテンツまでスキップ
に最終更新

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 などの操作中は使用できません。
  • このコマンドにより、進行中のデータインポートが失敗する場合があります。

例​

  1. example_db のテーブル tbl のデータを消去します

    TRUNCATE TABLE example_db.tbl;
  2. テーブル tbl のパーティション p1 と p2 のデータを消去します

    TRUNCATE TABLE tbl PARTITION(p1, p2);