Tous les produits
Search
Centre de documentation

AnalyticDB:DELETE

Dernière mise à jour :Aug 10, 2026

Supprime des lignes d'une table selon des conditions spécifiées.

Limites

  • La table cible doit disposer d'une clé primaire.

  • Les instructions DELETE ne prennent pas en charge les alias de table.

  • Chaque instruction DELETE ne peut supprimer des données que dans une seule table, même lors de requêtes impliquant plusieurs tables jointes.

  • Pour supprimer toutes les lignes d'une table ou d'une partition, utilisez plutôt TRUNCATE TABLE ou TRUNCATE TABLE PARTITION. Pour plus d'informations, consultez la rubrique TRUNCATE TABLE.

Syntaxe

Suppression à partir d'une seule table

DELETE FROM table_name
[ WHERE condition ]

Suppression à partir de plusieurs tables

Important

L'instruction DELETE multi-tables nécessite AnalyticDB for MySQL V3.2.0.0 ou une version ultérieure. Pour afficher ou mettre à jour la version mineure de votre cluster, accédez à la page Cluster Information dans la console AnalyticDB for MySQL et vérifiez la section Configuration Information. Pour obtenir des instructions, consultez la rubrique Update the minor version of a cluster.

Utilisez une jointure pour filtrer les lignes entre les tables, puis supprimez les lignes correspondantes de la table cible :

DELETE table_name1
FROM table_name1 [INNER JOIN | LEFT JOIN | RIGHT JOIN] table_name2 ON table_name1.column1 = table_name2.column1
[WHERE where_condition]

Exemples

Supprimer des lignes correspondant à une valeur de colonne

Supprimez toutes les lignes où customer_name est égal à Alex :

DELETE FROM customer WHERE customer_name='Alex';

Supprimer des lignes correspondant à une condition

Supprimez toutes les lignes où age est inférieur à 18 :

DELETE FROM customer WHERE age<18;

Supprimer des lignes à l'aide d'une jointure

Supprimez les lignes de la table customer pour lesquelles le client possède une commande correspondante et où age est égal à 18 :

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

Fonctionnement de l'instruction DELETE

Les opérations DELETE dans AnalyticDB for MySQL sont asynchrones. Après l'exécution d'une instruction DELETE, les données sont marquées pour suppression mais ne sont pas immédiatement retirées du stockage. L'espace de stockage n'est libéré qu'après le traitement des lignes marquées par une tâche BUILD.

L'utilisation du stockage ne diminue pas immédiatement après une instruction DELETE. Pour libérer de l'espace, déclenchez une tâche BUILD :

  • Automatiquement : Une tâche BUILD s'exécute automatiquement lorsque le cluster remplit certaines conditions spécifiques. Consultez la section Automatic BUILD.

  • Manuellement : Déclenchez une tâche BUILD à tout moment. Consultez la section Manual BUILD.