TRUNCATE TABLE¶
テーブルからすべての行を削除しますが、テーブルはそのまま残します(テーブルに対するすべての権限と制約を含む)。また、テーブルのロードメタデータを削除します。これにより、コマンドの完了後に同じファイルをテーブルに再ロードできます。
これは DROP TABLE とは 異なり 、システムからテーブルを削除しますが、復元できるようにテーブルのバージョンを(ロード履歴とともに)保持することに注意してください。
- こちらもご参照ください。
構文¶
パラメーター¶
name切り捨てるテーブルの識別子を指定します。識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます(例えば、
"My Object")。テーブル識別子が完全修飾されていない場合(
db_name.schema_name.table_nameまたはschema_name.table_nameの形式)、コマンドは、セッションの現在のスキーマにあるテーブルを探します。ERROR_TABLE( base_table_name )指定されたベーステーブルに関連付けられたエラーテーブルを切り捨てます。エラーテーブルについて詳しくは、:ref:`label-data_load_overview_dml_error_logging`を参照してください。
識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます(例えば、
"My Object")。テーブル識別子が完全修飾されていない場合(
db_name.schema_name.table_nameまたはschema_name.table_nameの形式)、コマンドは、セッションの現在のスキーマにあるテーブルを探します。
使用上の注意¶
DELETE と TRUNCATE TABLE の両方が、データ保持期間中の(Time Travelを使用して)回復目的で削除されたデータを保持します。ただし、テーブルが切り捨てられると、ロードメタデータを回復できません。
TABLEキーワードは、テーブル名が完全修飾されているか、データベースとスキーマが現在セッションで使用されている場合、オプションです。
例¶
次の例では、テーブルを切り捨てます。
基本的なテーブルを作成し、データを挿入します。
テーブルを切り捨てます。
テーブルが空になったことを確認します。