IDs neu vergeben /durchnummerieren

  • Hallo miteinander, hab mal wieder probleme.

    Hab schon länger gesucht aber nix passendes gefunden.
    Folgendes:

    Ich habe eine MySQL Tabelle, jede reihe ist fortlaufend mit einer ID gekenzeichnet.
    Wenn ich jetzt also vier Datensätze habe, 1, 2, 3 und 4 und den zweiten lösche wird die nummerierung an der stelle unterbrochen.
    Ich hab dan also 1, 3 und 4.

    Wie bringe ich es hin das sobald was gelöscht wird wieder neu durchnummeriert wird?

    habs schon mit "ALTER TABLE table AUTO_INCREMENT = 1" versucht.... geht nicht.

    kann mir jemand weiterhelfen?

    Danke

  • ...in meinem fall ist sie erstrangig ;) weil er sich durch die ID Orientiert, wenn ich auf ein link klicke verweist der zB auf index.php?page=1... Dies ist dann der erste datensatz usw.

    Lange rede kurzer sinn habs gerade rausgekriegt.

    Meine Lösung:

    Code
    $idloeschen = "ALTER TABLE kursanmeldung DROP id";
    $idloeschen1 = mysql_query($idloeschen);
    
    
    
    
    $idneu = "ALTER TABLE kursanmeldung ADD id TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST";
    $idneu1 = mysql_query($idneu);

    So funktionierts

  • ...in meinem fall ist sie erstrangig


    Dann machst du was falsch!

    weil er sich durch die ID Orientiert, wenn ich auf ein link klicke verweist der zB auf index.php?page=1... Dies ist dann der erste datensatz usw.


    Sag ich doch, falsch! Und wenn du wieder einen Datensatz löschen musst, sortierst du die ID's wieder neu? Kann nicht dein Ernst sein?!?!?!?

  • Du willst datensatz nummer X auslesen und nicht den mit der id X? Dann mach doch einfach das beim auslesen, adnn sparste dir den ganzen aufwand mit nue sortieren und neu druchnummerieren:

    SQL
    SELECT ... FROM table WHERE ... LIMIT X-1, 1

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Dann machst du was falsch!


    Sag ich doch, falsch! Und wenn du wieder einen Datensatz löschen musst, sortierst du die ID's wieder neu? Kann nicht dein Ernst sein?!?!?!?


    Falsh, falsh, falsh.... Sehr konstrukti, vorallem hilfreich, und wenn du ausser kritik kein ansatz für eine lösung hast, an arroganz kaum zu überbieten... Weshalb sollte es falsh sein wenns für meine zwecke funktioniert?
    wenn ich hier ins forum shreibe erwarte ich "wies der foren name bereits sagt" hilfe, und keine vorpubertären trotz reaktionen...


    Danke

  • Falsh, falsh, falsh.... Sehr konstrukti, vorallem hilfreich


    Genau!

    und wenn du ausser kritik kein ansatz für eine lösung hast


    Ich serviere selten eine Lösung auf dem Silbertablett, du darfst selber mal nachdenken und dir nicht jeden Kram vorkauen lassen.

    an arroganz kaum zu überbieten...


    Lustig :D

    Weshalb sollte es falsh sein wenns für meine zwecke funktioniert?


    Wenn man nach dem Löschen eines Datensatzes die ID's neu sortieren muss, dann sollte selbst einem Anfänger auffallen, dass da was nicht stimmen kann!

    wenn ich hier ins forum shreibe erwarte ich "wies der foren name bereits sagt" hilfe


    Was du erwartest, ist mir völlig Latte. Hilfe zur Selbsthilfe ist effektiver als vorkauen!

    und keine vorpubertären trotz reaktionen...


    Hähä, sagt unser Senior-Programmierer :D

    Ich denke, auf meine Hilfe wirst du demnächst verzichten können, du weißt es ja eh besser! :( Kopfschüttel :(

  • Du kannst Bandit glauben, IDs sind nicht etwa zum durchzählen der Datensätze gedacht, dafür gibts immernoch die schöne Funktion COUNT(), wenn du eine genaue Anzahl wissen willst. Ansonsten sind die IDs dafür da, um die eindeutige(!) IDentifizierung zu garantieren, denn normalerweise arbeitet man in einer Datenbank gleich mit meheren Tabellen, die zueinander in Relation(Abhängigkeit) gesetzt werden. Dafür wird standardmäßig die ID verwendet.
    Dabei ist es natürlich ganz schlecht, die IDs zu löschen, weil alle Abhängigkeiten dann falsch werden. Kleines beispiel:

    Du hast eine Tabelle "autos" und eine tabelle "fahrer", angenommen sie sähen so aus:

    autos
    ----------------
    id | name | km | zulassung
    1 | sprinter | 222344 | 2006-11-02
    2 | golf | 203453 | 2002-09-23
    3 | passat | 23455 | 2008-04-12

    fahrer
    ----------
    id | name | alter | autoid
    1 | Peter | 70 | 2
    2 | Bernd | 32 | 1
    3 | Lukas | 22 | 3

    Bernds Sprinter geht nun kaputt und wird somit aus der Datenbank entfernt. Im Normalfall stände Bernd jetzt ohne Auto da. Aber nicht bei dir, da ja automatisch der Golf die ID 1 bekommt und somit Bernd wieder ein Auto hat. pech haben wird wohl Lukas ;)

  • Sehe ich das richtig? Schon wieder gibts hier einen Scheiss Falmewar und anstatt dass sich der TS mal die Lösungsansätze anschaut, die man da postet wird nur rumgemäckert. Leute das ist reinster Kindergarten.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!