テーブルにデータを挿入した後、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を参照してください。