Letzte Zeile löschen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Letzte Zeile löschen?

    Hallo!

    Ich habe eine Tabelle mit den Spalten time, Spalte1, Spalte2 usw.
    time ist vom typ Timestamp und PRIMARY.

    Bei bestimmten Aktivitäten wird eine neue Zeile mit der aktuellen Zeit und den entsprechenden informationen in den spalten eingefügt.

    Gibt es einen Befehl, mit dem ich die letzte Zeile (sozusagen die älteste) löschen kann, wenn ein neuer Eintrag hinzukommt?
    Ich brauche alte Informationen nicht mehr und die Tabelle wächst zu sehr an. Es reicht wenn zb 5000 Zeilen drin stehen und diese Zahl konstant bleibt!

    Danke für eure Hilfe!
    www.onlinefussballmanager.de
    Das kostenlose Managerspiel im Internet!!

  • #2
    wenn du die alten wirklich nicht mehr brauchst, dann lösche, sortiere dabei nach datum absteigend und verwendet LIMIT 5000, <eine verdammt hohe zahl>
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Sauberer wär's vielleicht wenn man sowas benutzt (anstatt einer "verdammt hohen Zahl" )
      Code:
      DELETE FROM WoAuchImmer WHERE ID = MAX(ID);
      "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

      Kommentar


      • #4
        Original geschrieben von Nezzar
        Sauberer wär's vielleicht wenn man sowas benutzt (anstatt einer "verdammt hohen Zahl" )
        Code:
        DELETE FROM WoAuchImmer WHERE ID = MAX(ID);
        sauber erkläre mal

        wie fängst du die 5000 Einträge damit ab? und was wäre, wenn die Tabelle
        gerade mal 1 Eintrag hat, ja die Lösung ist echt sauber

        Kommentar


        • #5
          danke erstmal!

          DELETE FROM tabelle WHERE time = MIN(time);

          klappt leider nicht ganz!

          Invalid use of group function

          hat jemand einen tipp?
          www.onlinefussballmanager.de
          Das kostenlose Managerspiel im Internet!!

          Kommentar


          • #6
            Original geschrieben von mrhappiness
            wenn du die alten wirklich nicht mehr brauchst, dann lösche, sortiere dabei nach datum absteigend und verwendet LIMIT 5000, <eine verdammt hohe zahl>
            nicht verstanden?
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              SELECT * FROM tabelle ORDER BY time DESC limit 5000,10000;
              Das funktioniert!

              DELETE * FROM tabelle ORDER BY time DESC limit 5000,10000;
              Das funktioniert nicht

              Wie kann das sein, wenn das select klappt und das delete nicht???
              www.onlinefussballmanager.de
              Das kostenlose Managerspiel im Internet!!

              Kommentar


              • #8
                Original geschrieben von DrMaik
                DELETE * FROM tabelle ORDER BY time DESC limit 5000,10000;
                Das funktioniert nicht
                du möchtest http://www.mysql.com/doc/de/DELETE.html lesen, und ausserdem bei solch einer query mysql_error() auswerten.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  bei Delete ohne *

                  Kommentar


                  • #10
                    ok ich habe anscheinend den befehl den ich gesucht habe gefunden:

                    DELETE FROM tabelle ORDER BY time LIMIT 1;

                    dies klappt offline mit der DB auch wunderbar, aber wenn ich es online probiere kommt eine fehlermeldung:

                    Fehler
                    SQL-Befehl :
                    DELETE FROM tabelle ORDER BY time LIMIT 1
                    MySQL meldet:
                    You have an error in your SQL syntax near 'ORDER BY time LIMIT 1' at line 1

                    Woran liegt das denn bitte?
                    ich bin froh, dass ich den befehl gefunden habe und der viel einfacher ist als ich gedacht habe, aber warum klappts offline und online nicht?
                    www.onlinefussballmanager.de
                    Das kostenlose Managerspiel im Internet!!

                    Kommentar


                    • #11
                      sicher, dass du online exakt die gleiche query benutzt hast ...?
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Ja 100%ig sicher! Strg+C und Str+V
                        www.onlinefussballmanager.de
                        Das kostenlose Managerspiel im Internet!!

                        Kommentar


                        • #13
                          bist du auch sicher, dass die online-dbms MySQL ist

                          Kommentar


                          • #14
                            ich habe es jetzt wie folgt gelöst (für die die's interessiert):


                            $min=2500; //soviele Datenzeilen bleiben stehen
                            $sqllogg1=mysql_query("SELECT * FROM transferloggs ORDER BY time DESC LIMIT $min,1",$db);
                            $i=mysql_fetch_object($sqllogg1);
                            $sqllogg2=mysql_query("DELETE FROM transferloggs WHERE time<'$i->time'",$db);
                            $resultlogg2=mysql_query($sqllogg2,$db);
                            www.onlinefussballmanager.de
                            Das kostenlose Managerspiel im Internet!!

                            Kommentar

                            Lädt...
                            X