DELETE 文を実行して、テーブルデータを削除できます。
使用方法
DELETE文を実行するテーブルには、プライマリキーが必要です。テーブルのエイリアスを使用して
DELETE文を実行することはできません。テーブルまたはパーティション全体からデータを削除する場合は、
DELETE文ではなく、TRUNCATE TABLE文またはTRUNCATE TABLE PARTITION文を使用することをお勧めします。詳細については、「TRUNCATE TABLE」をご参照ください。複数のテーブルからデータを削除する場合、1 つのテーブルに対してのみ SQL 文を実行できます。
構文
1 つのテーブルからデータを削除する場合、テーブルからデータをクエリし、WHERE 句で指定された条件を満たすデータを削除できます。複数のテーブルからデータを削除する場合、SQL 文を実行して、結合された複数のテーブルからデータをクエリし、WHERE 句で指定された条件を満たすデータを 1 つのテーブルから削除できます。
1 つのテーブルからデータを削除する
DELETE FROM table_name
[ WHERE condition ] 複数のテーブルからデータを削除する
複数のテーブルからデータを削除できるのは、V3.2.0.0 以降の AnalyticDB for MySQL クラスターの場合のみです。
AnalyticDB for MySQL クラスタのマイナーバージョンを表示および更新するには、AnalyticDB for MySQL コンソールにログインし、構成情報 セクションの クラスター情報 ページに移動します。
DELETE table_name1
FROM table_name1 [INNER JOIN | LEFT JOIN | RIGHT JOIN] table_name2 ON table_name1.column1 = table_name2.column1
[WHERE where_condition]例
name列がAlexであるデータを customer テーブルから削除します。DELETE FROM customer WHERE customer_name='Alex';age 列が 18 未満のデータを customer テーブルから削除します。
DELETE FROM customer WHERE age<18;customer テーブルの
id列と orders テーブルのid列に基づいて、結合されたテーブルからデータをクエリし、age列が 18 であるデータを customer テーブルから削除します。DELETE customer FROM customer JOIN orders ON customer.id = orders.id WHERE customer.age = 18;
一般的なエラーとトラブルシューティング
テーブルからデータを削除した後、ストレージ容量が減少しないのはなぜですか?
原因: DELETE 操作は非同期です。DELETE 文を実行してテーブルからデータを削除した後、ストレージ容量はすぐに減少しません。
解決策: DELETE 文を実行した後、BUILD ジョブをトリガーします。
AnalyticDB for MySQL クラスターが特定の条件を満たした後、BUILD ジョブが自動的にトリガーされる 場合があります。また、BUILD ジョブを手動でトリガーすることもできます。