0
votes

Comment vider une table en SQLite une fois qu'une limite est atteinte?

permet de dire que j'ai une table nommée des événements. Je veux savoir comment je peux limiter le nombre de lignes dans la table. Par exemple,

Lorsqu'il y a 30 rangées présentes dans la table, je souhaite imprimer toutes les lignes de la journalisation dans le studio Android, puis videz la table sans supprimer sa structure.

édité:

Je suis au courant de la commande "Supprimer" . Cependant, je me demande s'il y a un mécanisme pour appeler cette fonction de suppression uniquement lorsque vous dites que 30 rangées ont été remplies dans la table.


3 commentaires

C'est sql juste? Alors, que diriez-vous de Supprimer ?


Comment mettre une condition sur la limite? Seulement quand il atteint 30 rangées, je veux supprimer. Et vérifier la DB chaque seconde est une opération coûteuse. @Scarywombat


Avant d'insérer vérifier le compte


3 Réponses :


0
votes

Je suis Newbie sur SQLite. Mais si je suis dans votre statut, je vais faire une table vide avec la requête suivante.

DELETE FROM TARGET_TABLE


2 commentaires

Je suis au courant de cette commande. S'il vous plaît vérifier le problème à nouveau.


@Coder OK, puis envisagez la réponse des FORPAS. J'ai vérifié ça fonctionne.



1
votes

Créer un déclencheur qui vérifie après chaque insertion d'une nouvelle ligne, le nombre de lignes dans la table et si ce numéro est> = 30, la table est effacée:

CREATE TRIGGER Clear_Table
AFTER INSERT ON tablename
WHEN (SELECT COUNT(*) FROM tablename) >= 30
BEGIN
  DELETE FROM tablename;
END;


0 commentaires

0
votes

Cela dépend de votre fonction qui insère dans la table.

Dans votre méthode d'insertion, vous devez d'abord vérifier le nombre d'entrées dans votre table par la fonction "Compter" si elles sont supérieures à 30 ou tout ce que vous avez besoin d'exécuter la commande "Supprimer".

Il n'y a pas de commande prédéfinie pour une telle exigence.


0 commentaires