auto_increment zurücksetzen

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

  • auto_increment zurücksetzen

    Das Problem ist, dass der Mysqlserver bei einem Datenfeld mit auto_increment nach dem Löschen eines Datensatzes und erstellen eines neuen nicht die die Nummer nimmt, die frei geworden ist sondern die nächste. Kann man das umgehen????

    danke im vorraus!

    net-tom

  • #2
    Kann man das umgehen????
    nur wenn du den neuen datensatz mit der freien id bestückst.

    aber davon abgesehen ist das sogar gewüsncht, dass nicht die gleiche id verwendet wird. nur so kann die datenbank sauber bleiben.

    stelle dir mal vor, man verwendet die ids als referenz irgendwo. und jetzt löschst du was. ok. aber nun nimmst du die gleiche id noch einmal auf die noch verwiesen wird woanders. und schon hast du den salat.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hmm

      Ja, daran habe ich nicht gedacht, aber da hast du Recht. In meinem Fall empfinde ich es jedoch eher störend.

      Es gibt also nur die Möglichkeit die Felder manuel mit einem Wert zu versehen???

      danke

      net-tom

      Kommentar


      • #4
        Re: Hmm

        Original geschrieben von net-tom
        Es gibt also nur die Möglichkeit die Felder manuel mit einem Wert zu versehen???
        ja.

        davon rate ich aber dringend ab.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Meiner Ansicht aber ist eine Datenbank die nach 2 Jahren so aussieht:

          0 -> belegt
          1 -> leer
          2 -> leer
          3 -> leer
          4 -> belegt
          5 -> leer
          6 -> belegt
          7 -> belegt

          Blödsinnig, man bedenke das der Abstand die ID-Nr. immer größer und größer wird.

          Und im Hinblick auf die Datenauslesung vemute ich das die Schnelligkeit darunter leidet.

          Hab mir aber hierzu auch nicht wirklich eine Funktion überlegt mit der ich freie Ressourcen finden und gegebenenfalls wieder füllen kann.

          Aber da ein Kollege mitunter auf ASP Basis eine Routine entwickelt hat muesste sich diese auch auf die PHP-Ebene übersetzen lassen.
          Werde denn mal bei Gelegenheit mal fragen ob er sie preisgibt.
          [color=blue]MfG Payne_of_Death[/color]

          [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
          [color=red]Merke:[/color]
          [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

          Murphy`s Importanst LAWS
          Jede Lösung bringt nur neue Probleme
          Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
          In jedem kleinen Problem steckt ein großes, das gern raus moechte.

          Kommentar


          • #6
            [MySQL 4.0] auto_increment zurücksetzen

            Hi @ all,

            mich nervt dieses auto_increment auch ungemein.
            Warum wird der Index irgendwo intern gespeichert. Gibt es denn keine sinnvolle Möglichkeit diesen wieder auf 0 oder einen anderen Wert zu setzen?
            Ich muss ab und an eine komplette Tabelle löschen und diese dann als csv Datei wieder in die Daba einlesen, da die Pflege meiner Tabelle z.Z. über eine Exceltabelle erfolgt.
            Das der Autoindex mittlerweile bei über 9000 anfängt mit zählen m.E. nach einfach nur sinnlos.
            Muss ich mir erst ein PHP Skript schreiben das den Index jedesmal resettet wenn ich das will, oder gibt es nicht noch eine komfortablere Möglichkeit?

            Gruß und danke für eine Antwort?

            The_Dragon

            Kommentar


            • #7
              Ich muss ab und an eine komplette Tabelle löschen [...]
              nach einem DROP TABLE und anschliessendem CREATE TABLE fängt der counter auch wieder bei 1 an. wo ist denn jetzt dein problem?
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Re: [MySQL 4.0] auto_increment zurücksetzen

                Original geschrieben von The_Dragon
                mich nervt dieses auto_increment auch ungemein.
                ihr habt es anscheinend immer noch nicht begriffen, dass es auch anwendungen mit mehr als nur einer tabelle gibt, wo über die autoinc-ID logische verknüpfungen implementiert sind - diese ID verändern macht da den gesamten datenbestand inkonsistent...
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  lächerlich.

                  prädikat: wertlos

                  Kommentar


                  • #10
                    Original geschrieben von guestguest
                    lächerlich.

                    prädikat: wertlos
                    [color=red]nächster warnschuss von mir!
                    von aroree hast du ja schon einen bekommen.
                    [/color]
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      [MySQL 4.0] auto_increment

                      Arrghhh...
                      jetzt habe ich über ne Seite Antworttext verfasst, den Text vergessen zwischenzuspeichern und nu isser weg ;( (wie lang ist der timeout nach dem Anmelden hier, 5 Minuten???).
                      Nungut, also noch mal alles in Kurzform?:
                      Erst mal danke für die Antworten.
                      In meinem ersten Post habe ich mich vielleicht etwas missverständlich ausgedrückt. Ich lösche die Daten in der Tabelle mit delete from tabelle, anschließend wird meine *.csv Datei samt neuen Datensätzen wieder eingelesen. Das der Counter nach dem löschen und "createn" der Tabelle wieder von vorn anfängt zu zählen ist auch klar. Nur das wollte ich bisher eigentlich vermeiden. Vermutlich ist es wohl trotzdem der schnellste Weg ;/.
                      wahsaga schrieb:
                      "ihr habt es anscheinend immer noch nicht begriffen, dass es auch anwendungen mit mehr als nur einer tabelle gibt, wo über die autoinc-ID logische verknüpfungen implementiert sind - diese ID verändern macht da den gesamten datenbestand inkonsistent..."

                      Doch habe ich für meinen Teil schon, nur das es in meinem konkreten Fall nur um 1! Tabelle geht. Ich suche nach einer Möglichkeit das Verhalten für 1 Tabelle, evt. 1 bestimmte Daba abzustellen. Das die Standardeinstellung so zweifelsohne Sinn macht stelle ich ja auch nicht in Frage.

                      Noch Ein Beispiel: Ein Arbeitskollege hat ein Skript laufen, das den Auto_increment Wert nicht in Einer sondern in Zehner Schritten erhöht. Da ich bis jetzt noch keine Gelegenheit hatte mir dieses zu besorgen zielt meine Frage daraufhin ab, ob es z.B. eine PHP Variable gibt mit der man dieses, für meinen Fall unbrauchbare, Verhalten verhindern bzw. abstellen kann. Eine andere Möglichkeit wäre dies direkt im PhpMyAdmin einzustellen (hab dazu nur noch nix gefunden) oder in irgendwelchen Konfigurationsdateien von PHP oder MySQL bestimmte Werte zu manipulieren.
                      Nungut, vielleicht fällt ja jemand noch etwas dazu ein, ansonsten werde ich mal wieder nicht ums Handbücher wälzen herumkommen.

                      Thx for your attention

                      The_Dragon

                      Kommentar


                      • #12
                        Bist du denn auf den Auto-Wert angewiesen, oder nicht?
                        Zuletzt geändert von Wotan; 01.06.2005, 18:22.
                        *winks*
                        Gilbert
                        ------------------------------------------------
                        Hilfe für eine Vielzahl von Problemen!!!
                        http://www.1st-rootserver.de/

                        Kommentar


                        • #13
                          [MySQL 4.0]

                          Hui,

                          das war ja ne schnelle antwort .
                          Nunja der auto_inrement Wert ist mein Primärschlüssel, die anderen Spalten taugen dafür nicht viel, da sie nicht eineindeutig sind.
                          Klar könnte man jetzt sagen, mach doch einfach ne Normalisierung und splitte das ganze in mehrere Tabellen auf, aber das ist mir im Mom zu aufwendig, da die Pflege ja immer noch über Exceltabelle -> *csv Datei und einlesen in die DabaTab per PHPMyAdmin läuft.

                          Kommentar


                          • #14
                            Beim anlegen in der Excel-Tabelle vergibst du doch auch schon ID, oder nicht?
                            Beispiel Artikeldatenbank:
                            1000 Hardwareservice
                            1001 Softwareservice
                            1002 Tragetasche
                            usw.

                            Wenn das der Fall ist kannst du ganz auf den auto-Wert verzichten.

                            Wenn du Online einen neuen Datensatz einfügst machst du vorher eine Abfrage welche ID die letzte ist und addierst dann einfach eins dazu. Und schon hast du immer eine vorlaufene ID-Struktur ohne Lücken. Immer beginnent an der Stellen welche dein erster Datensatz ist.

                            Primärschlüssel muss nicht immer heißen das der wert auto_increment ist.
                            *winks*
                            Gilbert
                            ------------------------------------------------
                            Hilfe für eine Vielzahl von Problemen!!!
                            http://www.1st-rootserver.de/

                            Kommentar


                            • #15
                              Ok,

                              du hast vielleicht recht,
                              bis jetzt habe ich die ID zwar nicht in Excel vergeben, aber das gänge schon.
                              Bei mir kommen manchmal schon so an die 100 Datensätze pro Bearbeitung hinzu, diese füge ich normalerweise ans Ende der Tabelle an und sortiere diese dann anhand des Namens (der 1. Spalte). Danach könnte man ja ohne Probleme eine Id vergeben, nur das man dies jedesmal neu machen müsste.
                              Bevor ich mich aber noch mehr in dieser Richtung verrenne *g*, es ist ja so, das es im Prinzip egal ist in welcher Reihenfolge die Daten in der Daba stehen, da ich sowieso nur einzeln mit den Tabellen arbeiten will und nicht noch Verknüpfungen realisiere. Deshalb reichtes m.E. auch wenn die Ausgabe per PHP ordentlich arbeitet.

                              thx and bye

                              Kommentar

                              Lädt...
                              X