TRUNCATE TABLE

説明

TRUNCATE TABLE ステートメントは、テーブルまたはパーティションからすべての行を削除します。テーブルはビューまたは外部/一時テーブルであってはなりません。一度に複数のパーティションを切り捨てるには、ユーザーは partition_spec でパーティションを指定できます。 partition_spec が指定されていない場合、テーブル内のすべてのパーティションが削除されます。

テーブルがキャッシュされている場合、コマンドはテーブルとそのテーブルを参照するすべての依存関係のキャッシュされたデータをクリアします。キャッシュは、次回テーブルまたは依存関係にアクセスされたときに遅延してロードされます。

構文

TRUNCATE TABLE table_identifier [ partition_spec ]

パラメータ

-- 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|
+----+------+---+
+----+------+---+