TRUNCATE TABLE
説明
TRUNCATE TABLE
ステートメントは、テーブルまたはパーティションからすべての行を削除します。テーブルはビューまたは外部/一時テーブルであってはなりません。複数のパーティションを一度に切り捨てるには、ユーザーは partition_spec
にパーティションを指定できます。 partition_spec
が指定されていない場合、テーブル内のすべてのパーティションが削除されます。
テーブルがキャッシュされている場合、このコマンドはテーブルのキャッシュされたデータとそのテーブルを参照するすべての付属情報を消去します。キャッシュは、テーブルまたは付属情報に次回アクセスされたときに遅延して補充されます。
構文
TRUNCATE TABLE table_identifier [ partition_spec ]
パラメータ
-
table_identifier
データベース名で修飾できるオプションのテーブル名を指定します。
構文:
[ database_name. ] table_name
-
partition_spec
パーティションのキーと値のペアをコンマ区切りで指定するオプションのパラメータ。
構文:
PARTITION ( partition_col_name = partition_col_val [ , ... ] )
例
-- Create table Student with partition
CREATE TABLE Student (name STRING, rollno INT) PARTITIONED BY (age INT);
SELECT * FROM Student;
+----+------+---+
|name|rollno|age|
+----+------+---+
| ABC| 1| 10|
| DEF| 2| 10|
| XYZ| 3| 12|
+----+------+---+
-- Removes all rows from the table in the partition specified
TRUNCATE TABLE Student partition(age=10);
-- After truncate execution, records belonging to partition age=10 are removed
SELECT * FROM Student;
+----+------+---+
|name|rollno|age|
+----+------+---+
| XYZ| 3| 12|
+----+------+---+
-- Removes all rows from the table from all partitions
TRUNCATE TABLE Student;
SELECT * FROM Student;
+----+------+---+
|name|rollno|age|
+----+------+---+
+----+------+---+