Ankündigung

Einklappen
Keine Ankündigung bisher.

ID wird auch nach Löschen weiter hochgezählt

Einklappen

Neue Werbung 2019

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

  • ID wird auch nach Löschen weiter hochgezählt

    Hallo,
    ich hoffe ihr könnt mir helfen, da ich momentan mehrere Probleme in meinem Projekt habe und nicht weiß wo dran es liegt und in diesem einen Fall auch nicht so wirklich weiß, wo nach ich suchen soll.
    Ich arbeite momentan an einer einfachen Datenbankanwendung, die Daten eines Benutzers mittels eines Formulars einliest und in einer Datenbank speichert.
    Ueber ein anderes Script hat der Nutzer die Möglichkeit entsprechende Daten zu bearbeiten oder zu löschen.
    Das hat bisher auch alles funktioniert, nun ist mir jedoch aufgefallen, wenn ich Daten lösche, was ich mittels einer ID mache, die automatisch hochgezählt wird, arbeitet meine Datenbank so weiter, als würde die ID noch bestehen.
    Also um es mal an nem Beispiel zu erklären: Der Datensatz mit der ID 2 wird gelöscht. Erstelle ich danach einen neuen Eintrag bekommt dieser die ID 3, obwohl ja eigentlich den mit der ID 2 gelöscht habe und der neue nun an zweiter Stelle steht.
    Meine Datenbank zählt also die IDs weiter hoch, auch wenn Daten mit der ID gar nicht mehr existieren.
    Gibt es da irgendeine Lösung für?
    Ich habe momentan mehrere Probleme in meiner Anwendung und weiß nicht, woran es liegt. Vielleicht wäre die Lösung dieses Problems schon mal ein guter Anfang.
    Vielen lieben Dank im Voraus.

  • #2
    Das soll so sein. IDs sollten nicht wiederverwendet werden.

    Kommentar


    • #3
      Also um es mal an nem Beispiel zu erklären: Der Datensatz mit der ID 2 wird gelöscht. Erstelle ich danach einen neuen Eintrag bekommt dieser die ID 3, obwohl ja eigentlich den mit der ID 2 gelöscht habe und der neue nun an zweiter Stelle steht.
      Ja, das ist das übliche Verhalten - warum hast du dadurch ein Problem?

      Ueber ein anderes Script hat der Nutzer die Möglichkeit entsprechende Daten zu bearbeiten oder zu löschen.
      Dann hast ja ja die tatsächliche ID des Satzes. Arbeite damit, dann gibts kein Problem.
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Ich danke euch.
        Habe mittlerweile selbst gemerkt, dass das kein Problem darstellt sondern mein Fehler an einer anderen Stelle lag.
        Nur interessehalber, gibt es denn eine Möglichkeit die ganze Datenbank quasi auf Null zurück zu setzen, sodass die IDs wieder bei 1 anfangen?
        Ich habe zwar keine Probleme damit wenn sie immer weiter steigen, aber interessieren würde es mich schon.
        Das einzige was mir spontan einfallen würde wäre die Datenbank einmal komplett zu löschen und neu anzulegen.
        Und nochmals vielen lieben Dank.

        Kommentar


        • #5
          Das geht z.B. ganz einfach mittels PHPMyAdmin. Einfach die Tabelle wählen - Operationen - dort den Wert AUTO_INCREMENT auf 1 setzen. Macht aber nur Sinn, wenn keine Daten mehr in der Tabelle sind (und wenn keine anderen Tabellen mehr per Fremdschlüssel auf gelöschte Daten dieser Tabelle zeigen. Das ist übrigens auch einer der Gründe, warum nach einer Löschaktion, die AUTO_INCREMENT Spalte keine bereits benutzten IDs wiederverwendet).
          There are 10 kind of people: those who understand binary and those who don't.

          Kommentar


          • #6
            Wenn du mit truncate eine Tabelle leerst wird der Wert von autoincrement zurückgesetzt auf 0, beginnt somit wieder bei 1..

            Syntax lautet
            Code:
            TRUNCATE TABLE `mytable`;

            Kommentar

            Lädt...
            X