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
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
切り捨てる表を指定します。 |
説明
-
TRUNCATEはDDL文です。コミットは、TRUNCATE文の実行前後に実行されます。 -
表にアウトライン列があり、切り捨てる数百万の行がある場合、
ttCompact組込みプロシージャを呼び出してメモリーを解放することを検討してください。 -
同時読取りのコミット読取り操作が可能であり、読取りセマンティックは
DELETE文がある場合の読取りのコミット読取りと同じになります。 -
子表がある場合でも、
TRUNCATEを実行できます。ただし、TRUNCATEを実行するには、子表を空にする必要があります。いずれかの子表に行が含まれていると、子表が空でないことを示すエラーが返されます。 -
TRUNCATEは、マテリアライズド・ビューのディテール表、キャッシュ・グループに含まれる表または一時表ではサポートされていません。 -
表に可変長の表外データが含まれている場合、
TRUNCATE TABLEの実行結果は、表内のすべての行を削除するDELETE文と同じです。表外データの詳細は、「数値データ型」を参照してください。 -
表をレプリケートしている場合に
TRUNCATE文を使用すると、操作対象の行が存在しない場合でも、サブスクライバにレプリケートされます。 -
タイムスタンプ競合検出が有効な状態で表をレプリケートすると、競合はレポートされません。
-
切り捨てられた表がコミットされていない場合は、この表のハッシュ・ページを変更するために、
DROP TABLEおよびALTER TABLE操作を使用できません。
例
recreation.clubs表のすべての行を削除するには、次の文を使用します。
TRUNCATE TABLE recreation.clubs;
関連項目