SQLite
 sql >> Base de données >  >> RDS >> SQLite

Android sqlite, limite le nombre de lignes dans la base de données

Une requête comme celle-ci affichera tous les enregistrements, le plus récent en premier :

SELECT *
FROM MyTable
ORDER BY Date DESC    -- or some autoincrementing ID column

Avec une clause OFFSET, vous pouvez ignorer les premiers enregistrements. Cela signifie que vous obtenez tous les enregistrements sauf les 100 premiers, c'est-à-dire que vous obtenez les enregistrements qui doivent être supprimés :

SELECT *
FROM MyTable
ORDER BY Date DESC
LIMIT -1 OFFSET 100

Vous pouvez ensuite l'utiliser dans une sous-requête pour réellement supprimer les enregistrements :

DELETE FROM MyTable
WHERE ID IN (SELECT ID
             FROM MyTable
             ORDER BY Date DESC
             LIMIT -1 OFFSET 100)