MySQL Index reparieren

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

  • MySQL Index reparieren

    Hallo,

    ich habe ein kleines Problem mit meiner Datenbank -

    In der DB werden Transporte eingetragen, zum Identifizieren
    der Fahrten steht in Spalte 1 der Index (unique,autoincrement)
    und in Spalte 2 wird eine Auftragsnummer vergeben, die jedes
    Jahr auf 0 zurückgesetzt wird.

    Nun habe ich gemerkt, das ich zu Beginn der Eingabe irgendwo
    nen Datensatz gelöscht habe, wodurch sich natürlich mein
    Index verschoben hat - d.h. der Index springt von 184 auf 186,
    die Auftragsnummern gehen jedoch normal durch 184, 185.

    Gibt es eine Möglichkeit, (z.B. per phpmyAdmin) diesen Fehler
    zu korrigieren, d.h. er solle alle Transporte ab 186 öffnen und
    den Index um 1 reduzieren, so dass die Auftragsnummer wieder
    mit dem Index übereinstimmt, oder muss ich mir ein Script schreiben,
    welche alle Datensätze ab 185 öffnet und mit einem Index -1
    wieder speichert ??

    (Inzwischen ist das Löschen von Transporten verboten ;-) -
    war ein Anfängerfehler)

    Vielen Dank schonmal im Voraus

    Grüsse

    Rox

  • #2
    ähm, 1. sollte die ID auch nur als solche genutzt werden, das heißt, die übereinstimmung mit der aufragsnummer ist reiner zufall.

    2. hättest du das script wahrscheinlich schneller geschrieben, als diesen beitrag,

    Kommentar


    • #3
      Hallo,

      das mit dem Index wirkt sich auch nicht nachteilig auf
      das Programm aus, sieht nur sauberer aus.
      Gesucht wird nur nach Auftragsnummern.

      Zu 2. : phpMyAdmin hat ne Menge Funktionen, die ich
      noch nicht kapiert habe, deshalb das Posting - vielleicht
      lernt man ja was, was man mal wieder gebrauchen kann.

      (z.B. Reparatur von Datenbanken, falls das Problem überhaupt
      dazu gehört ?)

      Grüsse - Rox

      Kommentar


      • #4
        Re: MySQL Index reparieren

        Original geschrieben von rox
        Gibt es eine Möglichkeit, (z.B. per phpmyAdmin) diesen Fehler
        zu korrigieren, d.h. er solle alle Transporte ab 186 öffnen und
        den Index um 1 reduzieren, so dass die Auftragsnummer wieder
        mit dem Index übereinstimmt, oder muss ich mir ein Script schreiben,
        welche alle Datensätze ab 185 öffnet und mit einem Index -1
        wieder speichert ??
        Klar:

        UPDATE tabelle SET idx = idx - 1 WHERE idx >= 186 ORDER BY idx ASC;
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar

        Lädt...
        X