Ich habe Tabelle in denen ich regelmäßig Werte abspeichere. Ich brauche / möchte aber ausschließlich auf die letzten 500 gespeicherten Werte zugreifen. Die vorigen brauche ich nicht. Gibt es eine automatisierte Möglichkeit alle Werte, bis auf die letzten 500 zu löschen?
Beitrag #6956158 wurde von einem Moderator gelöscht.
Gast
#6956167
> Gibt es eine automatisierte Möglichkeit alle Werte, bis auf die letzten > 500 zu löschen? DELETE FROM adäquat parametrisieren. HTH
g457 schrieb: >> Gibt es eine automatisierte Möglichkeit alle Werte, bis auf die > letzten >> 500 zu löschen? > > DELETE FROM adäquat parametrisieren. > > HTH Jap, dies hab ich ja schon, in etwa so:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Aber diese Abfrage müsste ich ja manuell starten, bzw. über Cronjob semi-manuell anstarten. Gibt es da eine Möglichkeit dies zu automatiesieren sobald ein ein neuer Insert in die Datenbank kommt?!
Gast
#6956181
Die meisten Datenbanken bieten so etwas wie CREATE TRIGGER AFTER INSERT ...
Gast
#6956183
Grundsätzlich per Trigger [1]. MySQL kennt aber leider nur Row-Level Trigger und keine per Statement, so dass der Trigger für jede eingefügte Zeile ausgeführt wird. [1] https://dev.mysql.com/doc/refman/8.0/en/create-trigger.html
Gästin schrieb: > Grundsätzlich per Trigger [1]. MySQL kennt aber leider nur > Row-Level > Trigger und keine per Statement, so dass der Trigger für jede eingefügte > Zeile ausgeführt wird. > > [1] https://dev.mysql.com/doc/refman/8.0/en/create-trigger.html Trigger war ein guter Ansatz, habe ich angelegt. Nun ist aber das Problem das ich - logischerweise - ein MySQL Fehler geworfen bekomme da ich ja einen Trigger auslöße während er schreibt. Trigger:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Beim INSERT INTO eines neuen Datensatzes wirft er diesen Fehler:
1 | |
Performance-Killer, das immer gleich in Echtzeit zu löschen. Lieber ein paar Stunden/Tage länger in der Tabelle lassen, danach alles löschen was man nicht braucht und ein optimize table hinterher (wobei das optimize auf große Tabellen auch die Performance killen kann, dann sollte man sowas in zugriffsschwache Zeiten legen).
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.