FIFO in der Tabellendedefinition festlegen?

31/03/2010 - 13:30 von mimuel | Report spam
Hi,

ich hab eine Tabelle die ich wie ein FIFO benutze:
Sie enthàlt maximal 500 Zeilen, kommt eine neue dazu
wird die àlteste gelöscht.
Das hab ich so gelöst:
DELETE FROM tab WHERE id NOT IN (SELECT TOP 500 id FROM tab ORDER BY id DESC)

Jetzt sagt mir ein Kollege man könnte sowas auch bei der Tabellendefinition
festlegen. Die Tabelle wird dann maximal 500 Zeilen lang. Stimmt das?

Danke Michael
 

Lesen sie die antworten

#1 Lutz Uhlmann
31/03/2010 - 14:29 | Warnen spam
Am 31.03.2010 13:30, schrieb mimuel:
Hi,

ich hab eine Tabelle die ich wie ein FIFO benutze:
Sie enthàlt maximal 500 Zeilen, kommt eine neue dazu
wird die àlteste gelöscht.
Das hab ich so gelöst:
DELETE FROM tab WHERE id NOT IN (SELECT TOP 500 id FROM tab ORDER BY id DESC)



Ich würde 500 Eintràge in der Tabelle vorbereiten (ID 1 bis 500).
Anhand eines Zeitstempels (DATETIME) würde ich diese 500 Eintràge
sortieren. Und über den Ältesten würde ich ein UPDATE laufen lassen und
alle Werte inkl. neuem Zeitstempel setzen.
Für den Anfang müßtest du dir noch regeln wie die ersten 500 gefüllt
werden oder du legst sie leer an.

Jetzt sagt mir ein Kollege man könnte sowas auch bei der Tabellendefinition
festlegen. Die Tabelle wird dann maximal 500 Zeilen lang. Stimmt das?



Dazu kann ich leider nichts sagen ...

Lutz

Ähnliche fragen