このテーブル内のデータが不要になった場合、テーブル内のすべてのデータを削除し、テーブルを空にすることができます。
OceanBaseデータベースは、TRUNCATE TABLE および DELETE FROM ステートメントを使用して指定されたテーブルを削除することをサポートしていますが、テーブル構造、つまりテーブル内で定義されたパーティション情報は保持されます。論理的には、TRUNCATE TABLE ステートメントとすべての行を削除するために使用される DELETE FROM ステートメントの実行結果は同じです。
TRUNCATE TABLEステートメントの使用
TRUNCATE TABLE ステートメントは、テーブル内のすべての行を迅速かつ効果的に削除する方法を提供します。また、TRUNCATE TABLE ステートメントはDDLステートメントであり、ロールバック情報は生成されません。
TRUNCATE TABLE ステートメントを実行するには、そのテーブルの削除および作成権限が必要です。権限の確認および付与に関する操作の詳細については、直接権限付与を参照してください。
obclient>TRUNCATE TABLE table_name;
DELETE FROMステートメントの使用
DELETE FROM ステートメントを使用して、テーブル内の行を削除することもできます。同時に、delete はDMLステートメントであり、ロールバック可能です。
例:
obclient>DELETE FROM table_name;
DELETE FROM ステートメントを使用してテーブルを空にする場合、テーブルに多くの行があると、多くのシステムリソースを消費します。
TRUNCATE TABLEステートメントとDELETE FROMステートメントの違い
TRUNCATE TABLE ステートメントと DELETE FROM ステートメントの違いは以下のとおりです:
TRUNCATE TABLEステートメントの実行結果では、影響を受ける行数は常に0行と表示されます。TRUNCATE TABLEステートメントを使用する場合、テーブルマネージャーは最後に使用されたAUTO_INCREMENT値を記録しませんが、最初からカウントを開始します。トランザクション処理やテーブルロックが実行されている間は、
TRUNCATE TABLE操作を実行することはサポートされていません。テーブル定義ファイルが有効であれば、データやインデックスファイルが破損していても、
TRUNCATE TABLEステートメントを使用してテーブルを空のテーブルとして再作成できます。