Ich baue eine Python-App mit Flask und SQL Alchemy mit einer SQLite3-Db-Engine. Ich muss die Tabellengröße auf 1000 Zeilen begrenzen und wenn dieses Limit erreicht ist, sollte der älteste Eintrag gelöscht werden, um Platz für den neuen zu schaffen. Wie im Beispiel unten:Flask SqlAlchemy gibt es eine Möglichkeit, die Tabellengröße auf n Zeilen zu begrenzen
| id | uuid | name | type |
________________________________________
| 1 | 78c0 | Danny | chef |
| 2 | 7966 | Mike | welder |
| . | ... | ... | ... |
|1000 | ef1b | John | fireman |
Nach dem nächsten INSERT INTO
sollte die Tabelle wie folgt aussehen:
| id | uuid | name | type |
________________________________________
| 2 | 7966 | Mike | welder |
| . | ... | ... | ... |
|1000 | ef1b | John | fireman |
|1001 | 7ce4 | Fez | doctor |
Gibt es eine Möglichkeit, dies zu erreichen, wenn ich meine Modelle zu erstellen oder irgendwo in der Config-Datei? Lassen Sie sich meine Modelle sagt Datei ist:
class People(db.Model):
id = db.Column(db.Integer, primary_key=True)
uuid = db.Column(db.String, unique=True, nullable=False)
name = db.Column(db.String(120), nullable=False)
type = db.Column(db.String(120))
Ich glaube, es durch Verwendung von gespeicherten Prozeduren möglich ist, aber sie sind nicht in die SQLite. Sie müssen diese Einschränkung also manuell überprüfen. – wanderlust
Nur eine Kuriosität: Woher kommt diese Anforderung? – van
Lagerung. Die Tabelle, die ich gepostet habe, war nur ein Beispiel, aber in Wirklichkeit speichere ich Daten in Bezug auf einige Jobs (Prozesse): PID, Pfad zur Protokolldatei, Ausführungszeit, etc ... und ich muss keine Historie größer halten als 1000 Reihen. Die db kann leicht zu Hunderten von GB ... – skamsie