Tous les produits
Search
Centre de documentation

Lindorm:DELETE

Dernière mise à jour :Aug 11, 2026

Utilisez l'instruction DELETE pour supprimer des lignes d'une table large (LindormTable) ou pour supprimer des séries temporelles entières correspondant aux conditions de filtre TAG d'une table de séries temporelles (LindormTSDB).

Moteurs et versions applicables

Moteur

Version requise

LindormTable

Toutes les versions

LindormTSDB

3.4.19 et ultérieures pour la suppression de timeline

Pour vérifier ou mettre à jour votre version actuelle, consultez le guide des versions et les instructions de mise à jour des versions mineures :

Syntaxe

delete_statement ::=  DELETE FROM table_identifier
                      WHERE where_clause
where_clause     ::=  relation ( AND|OR relation )*
relation         ::=  column_name operator term
                      | '(' column_name ( ',' column_name )* ')' operator tuple_literal
operator         ::=  '=' | '<' | '>' | '<=' | '>=' | '!=' | IN | IS NOT?  NULL | LIKE

Spécifiez les lignes à supprimer à l'aide de la clause WHERE.

Notes d'utilisation

LindormTable

Fonctionnement de DELETE

Lors de l'exécution d'une instruction DELETE, Lindorm écrit un marqueur de suppression dans les données cibles au lieu de lire les données au préalable. L'opération signale un succès, que la ligne cible existe réellement ou non.

Important

Si vous écrivez des données en utilisant UPSERT avec un horodatage futur comme version des données, une instruction DELETE ultérieure sur ces données ne les supprimera pas physiquement, même si l'instruction réussit. Consultez la section Gestion des données multiversions pour plus de détails.

Comportement selon la version

Version

Suppression par lot

Exigence de la clause WHERE

Antérieure à 2.7.5

Non disponible

Toutes les colonnes de clé primaire avec des conditions = (ligne unique uniquement)

2.7.5 et ultérieures

Suppression par lot désactivée (par défaut)

Toutes les colonnes de clé primaire avec des conditions = (ligne unique uniquement)

2.7.5 et ultérieures

Suppression par lot activée

Éventail complet des conditions de filtre, similaire à SELECT

Les versions antérieures à 2.8.2.26 prennent en charge uniquement la suppression de ligne unique. À partir de la version 2.8.2.26, la suppression par lot est disponible mais désactivée par défaut. Pour l'activer, contactez le support technique Lindorm.

Important

Une erreur lors d'une opération DELETE par lot, telle qu'un délai d'expiration, peut entraîner une suppression partielle des données.

LindormTSDB

L'instruction DELETE sur une table de séries temporelles supprime toutes les données de la série temporelle correspondante, et non des points de données individuels.

Contraintes de la clause WHERE pour LindormTSDB :

  • Les conditions de filtre doivent cibler uniquement les colonnes TAG (type VARCHAR).

  • Le champ column_identifier dans l'expression relation doit être une colonne VARCHAR (TAG).

  • L'instruction DELETE ne peut pas cibler des enregistrements de données individuels ; elle supprime toujours la série temporelle complète qui satisfait la condition de filtre TAG.

Exemples

Les exemples suivants utilisent cette table :

-- Create a table named sensor.
CREATE TABLE sensor (
  p1 INTEGER NOT NULL,
  p2 INTEGER NOT NULL,
  c1 VARCHAR,
  c2 VARCHAR,
  PRIMARY KEY(p1, p2)
);

-- Insert data into the table.
UPSERT INTO sensor(p1, p2, c1, c2) VALUES (1,1,'a','a'),(2,2,'b','b'),(3,3,'c','c');

Supprimer une seule ligne

Spécifiez toutes les colonnes de clé primaire dans la clause WHERE pour supprimer une seule ligne.

DELETE FROM sensor WHERE p1 = 1 AND p2 = 1;

Exécutez SELECT * FROM sensor; pour vérifier le résultat :

+------+------+------+------+
| p1   | p2   | c1   | c2   |
+------+------+------+------+
|    2 |    2 | b    | b    |
|    3 |    3 | c    | c    |
+------+------+------+------+

Supprimer plusieurs lignes (suppression par lot)

Important

Pour activer la suppression par lot, consultez la rubrique Comment activer la suppression par lot.

Une fois la suppression par lot activée, utilisez une clause WHERE plus large pour supprimer plusieurs lignes à la fois.

DELETE FROM sensor WHERE c1 > 'b' OR p2 > 1;

Exécutez SELECT * FROM sensor; pour vérifier que les lignes attendues ont été supprimées.