TRUNCATE TABLE

TRUNCATE TABLE文は、すべての行を削除するDELETE文と類似しています。

TimesTen Classicでは、DELETEは各行を個別に削除するため、TRUNCATE操作はほとんどの状況でDELETE操作より高速です。

TimesTen Scaleoutでは、TRUNCATE TABLEは、切り捨てられる表に依存するすべてのコマンドを無効にするDDL文に似ています。表内のすべての行を削除するには、DELETE文ではなくTRUNCATE文を使用することをお薦めします。

必要な権限

表の所有者に必要な権限はありません。

別のユーザーの表の場合、DELETEが必要です。

TimesTen Scaleoutでの使用

この文は、TimesTen Scaleoutでサポートされています。

SQL構文

TRUNCATE TABLE [Owner.]TableName

パラメータ

パラメータ 説明

[Owner.]TableName

切り捨てる表を指定します。

説明

  • TRUNCATEはDDL文です。コミットは、TRUNCATE文の実行前後に実行されます。

  • 表にアウトライン列があり、切り捨てる数百万の行がある場合、ttCompact組込みプロシージャを呼び出してメモリーを解放することを検討してください。

  • 同時読取りのコミット読取り操作が可能であり、読取りセマンティックはDELETE文がある場合の読取りのコミット読取りと同じになります。

  • 子表がある場合でも、TRUNCATEを実行できます。ただし、TRUNCATEを実行するには、子表を空にする必要があります。いずれかの子表に行が含まれていると、子表が空でないことを示すエラーが返されます。

  • TRUNCATEは、マテリアライズド・ビューのディテール表、キャッシュ・グループに含まれる表または一時表ではサポートされていません。

  • 表に可変長の表外データが含まれている場合、TRUNCATE TABLEの実行結果は、表内のすべての行を削除するDELETE文と同じです。表外データの詳細は、「数値データ型」を参照してください。

  • 表をレプリケートしている場合にTRUNCATE文を使用すると、操作対象の行が存在しない場合でも、サブスクライバにレプリケートされます。

  • タイムスタンプ競合検出が有効な状態で表をレプリケートすると、競合はレポートされません。

  • 切り捨てられた表がコミットされていない場合は、この表のハッシュ・ページを変更するために、DROP TABLEおよびALTER TABLE操作を使用できません。

recreation.clubs表のすべての行を削除するには、次の文を使用します。

TRUNCATE TABLE recreation.clubs;

関連項目