説明
このステートメントは、指定されたテーブルを完全に削除しますが、テーブル構造(テーブルで定義されたパーティション情報を含む)は保持します。論理的には、このステートメントはすべての行を削除する DELETE FROM ステートメントと同じです。
使用上の制限と注意事項
TRUNCATE TABLE ステートメントと DELETE FROM ステートメントの違いは以下のとおりです:
TRUNCATE操作はテーブルを削除してから再作成するため、特に大規模なテーブルでは、行ごとに削除するよりもはるかに高速です。TRUNCATE TABLEステートメントの実行結果では、影響を受けた行数は常に0行と表示されます。TRUNCATE TABLEステートメントを使用すると、テーブルマネージャーは最後に使用されたAUTO_INCREMENT値を覚えていませんが、カウントは最初から始まります。TRUNCATEステートメントは、トランザクション処理中やテーブルロック中には実行できません。使用するとエラーが発生します。データファイルやインデックスファイルが破損していても、テーブル定義ファイルが有効であれば、
TRUNCATE TABLEを使用してテーブルを空のテーブルとして再作成できます。
権限要件
TRUNCATE TABLE ステートメントを実行するには、現在のユーザーがテーブルに対する DROP 権限を持っている必要があります。OceanBaseデータベースの権限の詳細については、Oracleモードの権限分類を参照してください。
構文
TRUNCATE [TABLE] [schema.]table_name;
パラメータの説明
パラメータ |
説明 |
|---|---|
| schema. | スキーマを指定します。schema を省略した場合、デフォルトでこのテーブルは現在のスキーマに存在します。 |
| table_name | テーブル名を指定します。 |
例
テーブル tb1 を完全に削除します。
obclient> TRUNCATE TABLE tbl1;
Query OK, 0 rows affected