Gerhard: SQL Besonderes Löschen-Statement

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

  1. 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

    1. Ich habs noch nicht ausprobiert, aber das hört sich gut an!
      Danke
      mfg Gerhard

    2. 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

      --
      "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      1. 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

        1. 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

          --
          "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
          1. 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

            1. 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

              --
              "Look, that's why there's rules, understand? So that you _think_ before you break 'em."