"Leere" Auto Increment IDs finden

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

  • "Leere" Auto Increment IDs finden

    Hallo,

    in einer Datenbank werden gelegentlich Datensätze gelöscht und die Auto-Inc-ID ist somit wieder "frei".

    Wie kann man sich auflisten lassen, welche IDs "leer" sind damit man die wiederverwenden kann?

  • #2
    Das wäre totaler Quatsch. Einmal vergebene IDs sollten auf absolut keinen Fall recycelt werden -> Stichwort Datenintegrität.

    Kommentar


    • #3
      Wieso sollte das Quatsch sein? Die ID sind ja gelöscht und in anderen Tabellen auch...

      Kommentar


      • #4
        Wieso sollte das Quatsch sein?
        Weil es unsauber ist und unnötige Risiken von falsch verknüpften Daten mit sich bringt. Punkt. Keinen Bock auf weitere Diskussion
        Wenn Du's unbedingt so machen willst - bitte. Dann zähl mit PHP die IDs durch und notiere dir die leeren Stellen - mit mySQL alleine geht das meines Wissens nicht.

        Kommentar


        • #5
          Original geschrieben von pekka
          Weil es unsauber ist und unnötige Risiken von falsch verknüpften Daten mit sich bringt. Punkt. Keinen Bock auf weitere Diskussion
          Wenn Du's unbedingt so machen willst - bitte. Dann zähl mit PHP die IDs durch und notiere dir die leeren Stellen - mit mySQL alleine geht das meines Wissens nicht.
          Irgendwie geht's auch mit SQL, z.b. mit einer User-Variablen die nebenher zählt, oder sonstwas, aber ich rate auch dringend davon ab.

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

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

          Kommentar


          • #6
            Finde es auch schwachsinnig aber wenn du es umbedingt willst dann mache soetwas wie


            Code:
            SELECT A.id+1
            FROM tabelle AS A
            WHERE 0 = (COUNT(*) FROM tabelle AS B WHERE B.id = A.id+1)
            so solltest du alle leeren ids finden
            signed oder unsigned... das ist hier die Frage

            Kommentar


            • #7
              Original geschrieben von pekka
              Weil es unsauber ist und unnötige Risiken von falsch verknüpften Daten mit sich bringt. Punkt. Keinen Bock auf weitere Diskussion
              Wenn Du's unbedingt so machen willst - bitte. Dann zähl mit PHP die IDs durch und notiere dir die leeren Stellen - mit mySQL alleine geht das meines Wissens nicht.
              Ich schrieb: "Die IDs sind ja gelöscht und in anderen Tabellen auch"

              Also nix da mit "unnötige Risiken von falsch verknüpften Daten"...

              Kommentar


              • #8
                Ja, machs wie du willst und werd damit glücklich. Am besten missbrauchst du die ID anschließend auch noch zur nummerierung oder so.

                Aber bitte NICHT nachmachen!

                Kommentar


                • #9
                  Original geschrieben von Truncate
                  Ich schrieb: "Die IDs sind ja gelöscht und in anderen Tabellen auch"

                  Also nix da mit "unnötige Risiken von falsch verknüpften Daten"...
                  Was ist mit bereits vorhandenen Links, die dann auf einmal auf neuen - anderen - Inhalt zeigen?!

                  Klar, es raten dir 3 Leute mit Stern von der Lösung ab, weil wir alle keine Ahnung haben

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

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

                  Kommentar


                  • #10
                    Sorry aber wenn mit der ID noch irgendwelche anderen Sachen in der Datenbank verknüpft sind und diese auch sauber gelöscht werden, warum sollte es dann irgendwelche Probleme geben?

                    Selbst eBay verwendet IDs nach einer gewissen Zeit wieder... sonst wären die Artikelnummer mittlerweile wohl 50-stellig...

                    Kommentar


                    • #11
                      Mit dem Unterschied, dass es bei eBay keine Lücken gibt...

                      Dich kann sowieso keiner von deinem Vorhaben abhalten. Also tus doch einfach...

                      Kommentar


                      • #12
                        Original geschrieben von Truncate
                        Sorry aber wenn mit der ID noch irgendwelche anderen Sachen in der Datenbank verknüpft sind und diese auch sauber gelöscht werden, warum sollte es dann irgendwelche Probleme geben?
                        Was ist mit bereits vorhandenen Links, die dann auf einmal auf neuen - anderen - Inhalt zeigen?!




                        Beispiel-id von ebay.de
                        150 171 019 304
                        Das sind schon ein paar Zahlen ... sicher, dass ebay irgendwann mal von vorne anfängt?
                        Zuletzt geändert von ghostgambler; 20.10.2007, 18:52.

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

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

                        Kommentar


                        • #13
                          Was meinst du warum auto_increment vom SQL-Server nicht kleiner sein kann als die größte ID? Zu Spaß? Weil sie Speicher verschwenden wollen? Quatsch, Finger davon, woanders rumspielen
                          Selbst eBay verwendet IDs nach einer gewissen Zeit wieder... sonst wären die Artikelnummer mittlerweile wohl 50-stellig...
                          Nicht mal eBay macht sowas, hast du alte Nummern schonmal durchprobiert? Irgendwas gefunden? (50-stellige Zahl wäre übrigens im Bereich der Oktillionen - soviele Auktionen hatte auch eBay noch nicht.)
                          EDIT:
                          In der Wikipedia steht "Im Jahr 2003 wurden laut eBay 971 Millionen Artikel ... versteigert." - wenn man bedenkt kommen die Artikel Ids im Bereich 300. Milliarden die im Moment verwendet werden gut hin. Da wird sicher nichts wiederverwendet.
                          Zuletzt geändert von tontechniker; 20.10.2007, 18:55.
                          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                          Kommentar


                          • #14
                            eBay macht sowas... alte Nummern zeigen nach 90 Tage keine Auktion mehr an und werden nach einer gewissen Zeit wiederverwendet.

                            Kommentar


                            • #15
                              Original geschrieben von Truncate
                              eBay macht sowas... alte Nummern zeigen nach 90 Tage keine Auktion mehr an und werden nach einer gewissen Zeit wiederverwendet.
                              Steht wo?

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

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

                              Kommentar

                              Lädt...
                              X