auto_increment Frage

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

  • auto_increment Frage

    Hi,

    ich bastel grad ein kleines Forum und da ist mir bei den IDs der Threads und Posts aufgefallen, dass immer von der zuletzt vergebenen ID weitgezählt wird.

    Sprich selbst wenn ich die komplette Tabelle leere zählt von der ID weiter die dort als letztes vergeben wurde. An sich ist es ja kein Problem aber dennoch würde mich interessieren, wie ich das zurücksetzen kann. Also dass er wieder bei 0 anfängt. Oder gibt es gar eine Möglichkeit, beim erstellen der Einträge automatisch eine noch nciht verwendete ID zu benutzen auch wenn der letzte Eintrag einen höheren IDwert hat ?

    beste Grüße
    Dave

  • #2
    TRUNCATE TABLE tabelle;
    setzt auch auto_increment zurück

    Ansonsten gibts da in PMA unter Operationen auch die Möglichkeit~ wie der Query dazu ist sagt das Manual.

    Und nein, du willst keine Lücken in einer ID-Spalte füllen - google/forensuche für Gründe.

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Re: auto_increment Frage

      Oder gibt es gar eine Möglichkeit, beim erstellen der Einträge automatisch eine noch nciht verwendete ID zu benutzen auch wenn der letzte Eintrag einen höheren IDwert hat ?
      Der nächste Auto_increment-Wert ist immer max(id)+1, da hast du keine Chance! Das ist ein Schutzmechanismus von MySQL, so dass ein auto_increment nicht selbsttätig auf ein Duplicate entry läuft!

      Kommentar


      • #4
        Re: Re: auto_increment Frage

        Original geschrieben von PHP-Desaster
        Der nächste Auto_increment-Wert ist immer max(id)+1, da hast du keine Chance! Das ist ein Schutzmechanismus von MySQL, so dass ein auto_increment nicht selbsttätig auf ein Duplicate entry läuft!
        Das ist so nicht richtig. Wenn du den letzten Datensatz löscht, wird die ID nicht wiederverwendet. (Eine Ausnahme ist im Manual beschrieben).

        Außerdem kannst du den Auto-Increment-Wert mittels ALTER TABLE tbl AUTO_INCREMENT = x; auch umstellen.

        Guckst du hier.
        ich glaube

        Kommentar


        • #5
          ok, du hast recht! immer stimmt natürlich nur, wenn du keinen Datensatz vorher löschst. Dann muss ich mich korrigieren:
          Der kleinste auto_increment-Wert ist immer MAX(id)+1. Selbst wenn du ein Alter Table absetzt, wird der auto_increment nur verändert, wenn der neue Wert >= MAX(id)+1 ist!

          Kommentar


          • #6
            innodb setzt übrigens den auto_increment Wert bei einem Neustart automatisch wieder auf MAX(id)+1, demnach sinkt er in dem Fall eventuell, sofern man hinten Datensätze gelöscht hat~

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Original geschrieben von ghostgambler
              innodb setzt übrigens den auto_increment Wert bei einem Neustart automatisch wieder auf MAX(id)+1, demnach sinkt er in dem Fall eventuell, sofern man hinten Datensätze gelöscht hat~
              Stimmt, da habe ich gar nicht dran gedacht! Sehr gut

              Kommentar

              Lädt...
              X