全部產品
Search
文件中心

AnalyticDB:DELETE

更新時間:May 09, 2025

DELETE用於刪除表中的資料。

注意事項

  • 執行DELETE命令時,表中必須存在主鍵。

  • DELETE暫不支援使用表的別名。

  • 不建議通過DELETE命令刪除全表、全分區的資料,建議使用TRUNCATE TABLETRUNCATE TABLE PARTITION命令,詳情請參見TRUNCATE TABLE

  • 刪除多表資料時,一條SQL語句只能刪除一張表,不支援同時刪除多張表。

文法

單表刪除是指查詢一個表,並刪除滿足WHERE子句指定條件的資料。多表刪除是指單個SQL語句進行多表關聯查詢,並在一個表中刪除滿足WHERE子句指定條件的資料。

單表刪除

DELETE FROM table_name
[ WHERE condition ]        

多表刪除

重要

僅3.2.0.0及以上核心版本的叢集支援多表刪除。

雲原生資料倉儲AnalyticDB 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]

樣本

  • 刪除customer表中name張三的資料。

    DELETE FROM customer WHERE customer_name='張三';                  
  • 刪除customer表中的多行。

    DELETE FROM customer WHERE age<18;                
  • 在customer表中,查詢並刪除id與orders表中id相同,且age為18的資料。

    DELETE customer FROM customer JOIN orders ON customer.id = orders.id WHERE customer.age = 18;

常見問題

為什麼在刪除表中資料後,儲存空間佔用沒有減少?

原因:DELETE是非同步作業,執行DELETE語句刪除表資料後,儲存空間佔用不會立即減少。

解決方案:在執行DELETE語句後,觸發BUILD任務。

AnalyticDB for MySQL叢集會在滿足一定條件後自動觸發BUILD任務,您也可以手動觸發BUILD任務