Carl: id mit auto_increment

Hi

hab da ein kleines Problem.
Und zwar trage ich daten in eine MySql-Datenbank ein und versehe dabei mit auto_increment jeden eintrag mit einer id.
Wenn ich allerdings einen Eintrag aus der Tabelle lösche, habe ich
1. Bei allen neuen Einträgen die falsche Eintragsnummer.
2. wenn ich mittendrin einen Eintrag lösche, wird die Eintragsnummer für die nachfolgenden Einträge auch nicht angepasst.

Wie kann ich das nun machen, dass ich die "richtigen" ids rausbekomme?

Ich kann mich zwar dran erinnern irgendwo mal etwas zu dem Thema gelesen zu haben, finde es aber nicht mehr.

Gruss
Carl

  1. Hallo Carl,

    Deine erste Frage verstehe ich nicht völlig - was heißt falsch?

    Bezüglich des zweiten Punktes nehme einmal an, Du hast einen Eintrag mit der id 3 und verweist von einer anderen Tabelle auf diesen. Wenn nun das Löschen des vorherigen Eintrag, z. B. mit der id 2, zur Folge hätte, daß die id des dritten nun die id 2 erhielte, zielte der Verweis aus der anderen Tabelle ins Leere. Ids sind nicht zur Durchnummerierung geeignet, sondern eindeutige Kennzeichen eines Datensatzes.

    Gruß

    Eidgenosse

    1. Hi

      das falsch heißt, dass es eben nicht die nummer ist, die es von der anzahl der einträge her haben sollte.

      Wenn du sagst, dass ids nicht zur durchnummerierung geeignet sind, was wäre dann besser?

      Gruss
      Carl

      1. Hallo Carl,

        das hängt vom Gesamtkontext ab. Wenn ich Datenbankeinträge nummeriert ausgeben möchte, tue ich das nicht über die Datenbank, sondern bei der Ausgabe über einen Zählindex.

        Gruß

        Eidgenosse

        1. Hi Eidgenosse

          blöde Frage, aber wie zähle ich?
          Sorry bin wohl grad etwas konfus.

          Gruss
          Carl

          1. Moin!

            blöde Frage, aber wie zähle ich?
            Sorry bin wohl grad etwas konfus.

            1, 2, 3, 4, 5, 6, 7, 8, 9, 10...

            SCNR...

            Solltest du meinen "Wie zählt mein Programm": Du setzt eine Zählvariable am Start auf Null oder Eins, und bei jeder Ausgabe eines Datenbankeintrages erhöhst du die Variable um eins und gibst sie aus (oder du gibst sie aus und erhöhst sie dann - deswegen startest du entweder mit Null oder Eins).

            Und benutze diese Zählvariable keinesfalls, um irgendwie damit wieder auf die Datenbank zuzugreifen, um z.B. einen Datensatz auszuwählen und zu bearbeiten oder zu löschen: Wenn Änderungen in der Datenbank passieren, von denen deine Zählung nichts mitbekommen hat, arbeitest du mit dem falschen Datensatz. Nimm dafür immer die ID - genau dafür ist sie schließlich da.

            - Sven Rautenberg

            --
            Diese Signatur gilt nur am Freitag.