[SQLite] Anzahl der Datensätze in einer Datenbank limitieren

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Herr Lehmann
User
Beiträge: 81
Registriert: Samstag 14. August 2010, 22:20

Hallo,

ich habe ein Programm was ständig neue Einträge in eine Datebank schreibt. Zur Weiterverarbeitung genügen mir aber die letzten z.b. 100 Einträge. mit Limit 100 könnte ich diese natürlich bekommen. Allerdings möchte ich, dass die Datenbank nicht übermäßig groß wird und daher würde ich gerne die DB auf 100 Einträge beschränken. Also nach 100 Einträgen bei jedem neuen Einträg den ältesten Datensatz löschen.

gibt es dafür eine SQL Funktion oder was ist dafür eine gute Lösung?

Gruß

Herr Lehmann
Benutzeravatar
noisefloor
User
Beiträge: 3854
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

[Achtung, Halbwissen!]
Also wenn du eine "große" DB hast wie MySQL, SQLServer, Oracle u.ä., die man auch Programmieren kann, dann geht das wahrscheinlich, indem die einen Trigger schreibst, der so was erledigt.

Bei SQLite würde ich einfach mal behaupten: nein, geht nicht. Sollte sich aber recht einfach via Python realisieren lassen. Was du brauchst ist ja eine Art Ringpuffer mit 100 Speicherplätzen (Tabellenzeilen).

Gruß, noisefloor
deets

@HerrLehmann

wenn es wirklich nur 100 Eintraege sind, dann bist du mit nem Pickle oder JSON uU besser bedient. Da haelst du die Daten durch ein Statement in Python an der kurzen Leine.

Einen automatismus fuer SQLite gibt's nicht. Aber ich wuerde das auch nicht ueberbewerten. Passende Indizes vorrausgesetzt kannst du den Datenbestand ja durchaus um 1-2 Groessenordnungen anwachsen lassen, bevor du mal explizit alles alte wegschmeisst.
Antworten