MySQL: Index zurücksetzen?

Hallo zusammen!

Sagen wir ich hab eine Datenbank, bzw. eine Tabelle in einer DB, in der z.B. 10 Datensätze gespeichert sind. Wenn ich nun die letzten 5 Einträge löschen würde, dann ist das bei mir so, dass der Index dann mit 11 weitergeht, obwohl er ja eigentlich wieder bei 6 beginnen müsste, wenn ich wieder Daten hinzufüge… Kann man das irgendwie ändern?

Gut wäre natürlich auch, wenn ich z.B. den 4. Eintrag lösche, dass dann die nachfolgenden „nachrücken“, sodass keine Lücken entstehen beim Index.

Danke im Voraus

Schildi

Keine Ahnung, aber…
Ob man das machen kann, weiß ich nicht. Es hat aber seinen guten Grund, daß es nicht so ist.

Stell Dir mal vor, Du legst 500 User an. Die ID’s werden automatisch verteilt. Nun hast Du eine weitere Tabelle, welche z.B. speichert, wann welcher User sich das letzte mal eingeloggt hat.

Wenn Du nun den User mit der ID 196 löscht und alle anderen rücken nach, dann stimmen die Daten doch nicht mehr. Die Daten aus der zweiten Tabelle beziehen sich per User-ID auf völlig falsche Personen.

Sicher, das kann man alles so umbauen, daß dann automatisch X Tabellen angepasst werden, aber ist das nicht was kompliziert?

Moin, Schildi,

wenn mit Index der Ident gemeint sein sollte, dann geht das definitiv nicht, jedenfalls nicht im laufenden Betrieb. Sollte aber auch keine Rolle spielen, weil der Ident nach außen nicht sichtbar sein muss (genau genommen: nicht sichtbar sein sollte).

Mit der Brechstange wäre das natürlich schon zu machen: Entladen, Tabelle löschen, neu laden. Dann müsstest Du Dir aber heftigst Gedanken machen, was mit den Beziehungen passieren soll. Also lieber Finger weg.

Gruß Ralf

Ja, da haste natürlich Recht. Hmm…aber dass das so kompliziert ist, hätte ich nicht erwartet…Naja, wie dem auch sei - ich hab jetzt eine andere Lösung gefunden, bei der ich überhaupt nicht mehr über den Index arbeite. Und zwar habe ich in der while-Schleife, die zum Auslesen der Datensätze dient, einen counter angelegt, der immer im 1 erhöht wird. Somit fängt er dann beim 1. Datensatz bei 1 an usw., es entstehen also keinerlei Löcher oder sonst was :smile: Frage ist dann nur, ob ich evtl. später mal Probleme bekommen, wenn meine Datenbank ziemlich voll ist und ich dann im Programm versuche, einen bestimmten Eintrag über den Index zu löschen. Aber so wie’s jetzt ist, klappt’s erstmal :smile:

Danke, Schildi

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]