カテゴリ:

DML コマンド - 一般

TRUNCATE TABLE

テーブルからすべての行を削除しますが、テーブルはそのまま残します(テーブルに対するすべての権限と制約を含む)。また、テーブルのロードメタデータを削除します。これにより、コマンドの完了後に同じファイルをテーブルに再ロードできます。

これは DROP TABLE とは 異なり 、システムからテーブルを削除しますが、復元できるようにテーブルのバージョンを(ロード履歴とともに)保持することに注意してください。

こちらもご参照ください:

CREATE TABLE

構文

TRUNCATE [ TABLE ] [ IF EXISTS ] <name>

パラメーター

名前

切り捨てるテーブルの識別子を指定します。識別子にスペースまたは特殊文字が含まれる場合、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます(例: "My Object")。

テーブル識別子が完全修飾されていない場合( データベース名.スキーマ名.テーブル名 または スキーマ名.テーブル名 の形式)、コマンドはセッションの現在のスキーマのテーブルを探します。

使用上の注意

  • DELETE と TRUNCATE TABLE の両方が、データ保持期間中の(Time Travelを使用して)回復目的で削除されたデータを保持します。ただし、テーブルが切り捨てられると、ロードメタデータを回復できません。

  • TABLE キーワードは、テーブル名が完全修飾されているか、データベースとスキーマが現在セッションで使用されている場合、オプションです。

-- create a basic table
CREATE OR REPLACE TABLE temp (i number);

-- populate it with some rows
INSERT INTO temp SELECT seq8() FROM table(generator(rowcount=>20)) v;

-- verify that the rows exist
SELECT COUNT (*) FROM temp;

----------+
 count(*) |
----------+
 20       |
----------+

-- truncate the table
TRUNCATE TABLE IF EXISTS temp;

-- verify that the table is now empty
SELECT COUNT (*) FROM temp;

----------+
 count(*) |
----------+
 0        |
----------+