テーブルにデータを挿入した後、DELETE ステートメントやその他のステートメントを使用して、テーブル内のレコードを削除できます。本記事では、関連するステートメントの使い方と例を紹介します。
データ削除の準備
テーブルデータを削除する前に、以下の点を確認してください:
データベースのMySQLテナントに接続されていることを確認してください。データベースへの接続操作については、接続方法の概要を参照してください。
説明
現在ログインしているテナントが属するテナントモードは、
sysテナントでoceanbase.DBA_OB_TENANTSビューをクエリすることで確認できます。操作対象のテーブルに対する
DELETE権限を持っていることを確認してください。TRUNCATE TABLEステートメントを使用してテーブルデータを削除する場合は、そのテーブルに対するCREATE権限も必要です。現在のユーザー権限を確認する操作については、ユーザー権限の確認を参照してください。該当する権限がない場合は、管理者に連絡し権限付与を依頼してください。ユーザー権限に関する操作については、直接権限付与を参照してください。
DELETEステートメントを使用したデータの削除
通常、テーブル内の一部またはすべてのデータを削除するには、DELETE ステートメントを使用します。
説明
DELETE ステートメント以外に、REPLACE INTO ステートメントでもデータが削除される場合があります。REPLACE INTO ステートメントの操作と例については、データの置換を参照してください。
シンプルな DELETE ステートメントの構文は以下のとおりです:
DELETE FROM table_name [ WHERE condition ] ;
パラメータ |
必須 |
説明 |
|---|---|---|
| table_name | はい | 削除するデータのテーブルを指定します。 |
| [ WHERE condition ] | いいえ | WHERE句は、削除するデータが満たす必要がある条件を指定します。条件句が指定されていない場合は、テーブル全体が削除されます。 |
一部データの削除
DELETE ステートメントに WHERE 条件を追加することで、条件に合致する一部のデータをテーブルから削除できます。
t_insert テーブルから value = 10004 に一致するすべての行レコードを削除する例を以下に示します:
obclient [test]> DELETE FROM t_insert WHERE value = 10004;
Query OK, 1 row affected
すべてのデータを削除する
テーブル内のデータ量が少ない場合は、DELETE ステートメントを使用してすべての行レコードを直接削除できます。
例:
t_insertテーブルのすべての行データを削除します。obclient [test]> DELETE FROM t_insert; Query OK, 3 row affectedテーブル内のデータレコードが100万件を超える場合、一度に削除を実行するとパフォーマンスに影響を与える可能性があります。テーブル内の情報に基づいて
WHERE条件を使用してバッチ処理で削除するか、TRUNCATE TABLEステートメントを使用してテーブルデータをクリア することを推奨します。テーブル
t_insertのvalue列のデータをフィルタリングし、複数のステートメントを個別に実行して、value < 10000、value < 20000、value < 30000のデータをバッチ処理で削除します。obclient [test]> DELETE FROM t_insert WHERE value < 100000; obclient [test]> DELETE FROM t_insert WHERE value < 200000; obclient [test]> DELETE FROM t_insert WHERE value < 300000;
TRUNCATE TABLEステートメントを使用してテーブルデータをクリアする
TRUNCATE TABLE ステートメントは、指定されたテーブルを完全に削除しますが、テーブル構造(テーブルで定義されたパーティション情報を含む)は保持します。論理的には、このステートメントはすべての行を削除する DELETE FROM ステートメントと同等です。
TRUNCATE TABLE ステートメントの構文は以下のとおりです:
TRUNCATE [TABLE] table_name;
TRUNCATE TABLE ステートメントを使用してテーブル t_insert のすべてのデータをクリアする例は以下のとおりです:
obclient [test]> TRUNCATE TABLE t_insert;
TRUNCATE TABLE ステートメントの使用方法と説明の詳細については、TRUNCATE TABLEを参照してください。