SQL Besonderes Löschen-Statement
Gerhard
- datenbank
Hallo!
Weiß vielleicht jemand, wie ich beim Löschen aus einer Tabelle das zu löschende Element nicht eindeutig mit = bestimmen kann.
Ich meine damit folgendes:
Ich habe eine datenbank mit 50 einträgen, diese anzahl soll konstant bleiben. jeder eintrag besitzt das attribut unixtime.
jedes mal wenn ein neuer eintrag hinzukommt, wären es eigentlich 51, daher muss ich das älteste element löschen. allerdings weiß ich nicht, welchen inhalt das feld unixtime beim ältesten element hat.
ich bräuchte also eine where-Bedingung, wo abgefragt wird, ob ein element den kleinsten aller 50 werte im feld unixtime hat.
dadurch erspare ich mir eine aufwändige indexorganisation (ich müsste bei jedem neuen eintrag jeden index um 1 verringern)
Danke im Voraus für die Hilfe
Mit freundlichen Grüßen
Gerhard
Moin!
ich bräuchte also eine where-Bedingung, wo abgefragt wird, ob ein element den kleinsten aller 50 werte im feld unixtime hat.
WHERE unixtime = MIN( unixtime )
Gruß, rob
Ich habs noch nicht ausprobiert, aber das hört sich gut an!
Danke
mfg Gerhard
hi,
ich bräuchte also eine where-Bedingung, wo abgefragt wird, ob ein element den kleinsten aller 50 werte im feld unixtime hat.
WHERE unixtime = MIN( unixtime )
bei mysql beispielsweise würde sich auch ORDER BY in kombination mit LIMIT eignen.
gruß,
wahsaga
bei mysql beispielsweise würde sich auch ORDER BY in kombination mit LIMIT eignen.
da hast du wohl recht, aber dann würde ich ja irgendwann einen data overflow bekommen
mfg gerhard
hi,
bei mysql beispielsweise würde sich auch ORDER BY in kombination mit LIMIT eignen.
da hast du wohl recht, aber dann würde ich ja irgendwann einen data overflow bekommen
wie meinen?
ich meinte schon, dass du damit jeweils einen datensatz _löschen_ sollst, nicht die _ausgabe beschränken_.
gruß,
wahsaga
yo,
ich meinte schon, dass du damit jeweils einen datensatz _löschen_ sollst, nicht die _ausgabe beschränken_.
also wenn es schon sowas schönes wie limit gibt, würde ich anderes herum vorgehen, nähmlich alle bis auf die 50 aktuellsten löschen...
Ilja
hi,
also wenn es schon sowas schönes wie limit gibt, würde ich anderes herum vorgehen, nähmlich alle bis auf die 50 aktuellsten löschen...
ja, sicherlich auch ein guter vorschlag.
der fall, dass durch konkurrierende bearbeitungen auch mal mehr als 50 oder 51 datensätze in der tabelle sein könnten, ist ja nicht unbedingt auszuschließen.
gruß,
wahsaga