TRUNCATE TABLE¶
テーブルからすべての行を削除しますが、テーブルはそのまま残します(テーブルに対するすべての権限と制約を含む)。また、テーブルのロードメタデータを削除します。これにより、コマンドの完了後に同じファイルをテーブルに再ロードできます。
これは DROP TABLE とは 異なり 、システムからテーブルを削除しますが、復元できるようにテーブルのバージョンを(ロード履歴とともに)保持することに注意してください。
- こちらもご参照ください:
構文¶
TRUNCATE [ TABLE ] [ IF EXISTS ] <name>
パラメーター¶
name
切り捨てるテーブルの識別子を指定します。識別子にスペースまたは特殊文字が含まれる場合、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます(例:
"My Object"
)。テーブル識別子が完全修飾されていない場合(
db_name.schema_name.table_name
またはschema_name.table_name
の形式)、コマンドは、セッションの現在のスキーマにあるテーブルを探します。
使用上の注意¶
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 | ----------+