このテーブル内のデータが不要になった場合、テーブル内のすべての行を削除して、そのテーブルを削除できます。
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 ステートメントを使用して、テーブル内の行を削除します。
obclient>DELETE FROM table_name;
DELETE FROM ステートメントを使用してテーブルを削除する場合、テーブルに多くの行があると、多くのシステムリソースを消費します。
TRUNCATE TABLEステートメントとDELETE FROMステートメントの違い
TRUNCATE TABLE操作は、テーブルを削除して再作成するため、1行ずつ行を削除するよりもはるかに高速です。TRUNCATE TABLEステートメントの実行結果は、影響を受ける行数が常に0行であることを示します。TRUNCATE TABLEステートメントを使用する場合、テーブルマネージャーは最後に使用されたAUTO_INCREMENT値を記録しませんが、最初からカウントを開始します。トランザクション処理やテーブルロックが進行中に
TRUNCATE TABLE操作を実行することはサポートされていません。テーブル定義ファイルが有効であれば、データやインデックスファイルが破損していても、
TRUNCATE TABLEステートメントを使用してテーブルを空のテーブルとして再作成できます。